smile.classification
Class QDA
- java.lang.Object
-
- smile.classification.QDA
-
- All Implemented Interfaces:
- java.io.Serializable, Classifier<double[]>, SoftClassifier<double[]>
public class QDA extends java.lang.Object implements SoftClassifier<double[]>, java.io.Serializable
Quadratic discriminant analysis. QDA is closely related to linear discriminant analysis (LDA). Like LDA, QDA models the conditional probability density functions as a Gaussian distribution, then uses the posterior distributions to estimate the class for a given test data. Unlike LDA, however, in QDA there is no assumption that the covariance of each of the classes is identical. Therefore, the resulting separating surface between the classes is quadratic.The Gaussian parameters for each class can be estimated from training data with maximum likelihood (ML) estimation. However, when the number of training instances is small compared to the dimension of input space, the ML covariance estimation can be ill-posed. One approach to resolve the ill-posed estimation is to regularize the covariance estimation. One of these regularization methods is
regularized discriminant analysis.- See Also:
LDA,RDA,NaiveBayes, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description static classQDA.TrainerTrainer for quadratic discriminant analysis.
-
Constructor Summary
Constructors Constructor and Description QDA(double[][] x, int[] y)Learn quadratic discriminant analysis.QDA(double[][] x, int[] y, double tol)Learn quadratic discriminant analysis.QDA(double[][] x, int[] y, double[] priori)Learn quadratic discriminant analysis.QDA(double[][] x, int[] y, double[] priori, double tol)Learn quadratic discriminant analysis.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description double[]getPriori()Returns a priori probabilities.intpredict(double[] x)Predicts the class label of an instance.intpredict(double[] x, double[] posteriori)Predicts the class label of an instance and also calculate a posteriori probabilities.-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface smile.classification.Classifier
predict
-
-
-
-
Constructor Detail
-
QDA
public QDA(double[][] x, int[] y)Learn quadratic discriminant analysis.- Parameters:
x- training samples.y- training labels in [0, k), where k is the number of classes.
-
QDA
public QDA(double[][] x, int[] y, double[] priori)Learn quadratic discriminant analysis.- Parameters:
x- training samples.y- training labels in [0, k), where k is the number of classes.priori- the priori probability of each class.
-
QDA
public QDA(double[][] x, int[] y, double tol)Learn quadratic discriminant analysis.- Parameters:
x- training samples.y- training labels in [0, k), where k is the number of classes.tol- a tolerance to decide if a covariance matrix is singular; it will reject variables whose variance is less than tol2.
-
QDA
public QDA(double[][] x, int[] y, double[] priori, double tol)Learn quadratic discriminant analysis.- Parameters:
x- training samples.y- training labels in [0, k), where k is the number of classes.priori- the priori probability of each class. If null, it will be estimated from the training data.tol- a tolerance to decide if a covariance matrix is singular; it will reject variables whose variance is less than tol2.
-
-
Method Detail
-
getPriori
public double[] getPriori()
Returns a priori probabilities.
-
predict
public int predict(double[] x)
Description copied from interface:ClassifierPredicts the class label of an instance.- Specified by:
predictin interfaceClassifier<double[]>- Parameters:
x- the instance to be classified.- Returns:
- the predicted class label.
-
predict
public int predict(double[] x, double[] posteriori)Description copied from interface:SoftClassifierPredicts the class label of an instance and also calculate a posteriori probabilities. Classifiers may NOT support this method since not all classification algorithms are able to calculate such a posteriori probabilities.- Specified by:
predictin interfaceSoftClassifier<double[]>- Parameters:
x- the instance to be classified.posteriori- the array to store a posteriori probabilities on output.- Returns:
- the predicted class label
-
-
DataMelt 3.0 © DataMelt by jWork.ORG