public class MultivariateGaussianDistribution extends java.lang.Object implements MultivariateDistribution, MultivariateExponentialFamily
GaussianDistribution,
Serialized Form| Modifier and Type | Field and Description |
|---|---|
boolean |
diagonal
True if the covariance matrix is diagonal.
|
double[] |
mu
The mean vector.
|
Matrix |
sigma
The covariance matrix.
|
| Constructor and Description |
|---|
MultivariateGaussianDistribution(double[] mean,
double variance)
Constructor.
|
MultivariateGaussianDistribution(double[] mean,
double[] variance)
Constructor.
|
MultivariateGaussianDistribution(double[] mean,
Matrix cov)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
double |
cdf(double[] x)
Algorithm from Alan Genz (1992) Numerical Computation of
Multivariate Normal Probabilities, Journal of Computational and
Graphical Statistics, pp.
|
Matrix |
cov()
The covariance matrix of distribution.
|
double |
entropy()
Shannon entropy of the distribution.
|
static MultivariateGaussianDistribution |
fit(double[][] data)
Estimates the mean and diagonal covariance by MLE.
|
static MultivariateGaussianDistribution |
fit(double[][] data,
boolean diagonal)
Estimates the mean and covariance by MLE.
|
int |
length()
The number of parameters of the distribution.
|
double |
logp(double[] x)
The density at x in log scale, which may prevents the underflow problem.
|
MultivariateMixture.Component |
M(double[][] data,
double[] posteriori)
The M step in the EM algorithm, which depends the specific distribution.
|
double[] |
mean()
The mean vector of distribution.
|
double |
p(double[] x)
The probability density function for continuous distribution
or probability mass function for discrete distribution at x.
|
double[] |
rand()
Generate a random multivariate Gaussian sample.
|
double[][] |
rand(int n)
Generates a set of random numbers following this distribution.
|
double |
scatter()
Returns the scatter of distribution, which is defined as |Σ|.
|
java.lang.String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitlikelihood, logLikelihoodpublic final double[] mu
public final Matrix sigma
public final boolean diagonal
public MultivariateGaussianDistribution(double[] mean,
double variance)
mean - mean vector.variance - variance.public MultivariateGaussianDistribution(double[] mean,
double[] variance)
mean - mean vector.variance - variance vector.public MultivariateGaussianDistribution(double[] mean,
Matrix cov)
mean - mean vector.cov - covariance matrix.public static MultivariateGaussianDistribution fit(double[][] data)
data - the training data.public static MultivariateGaussianDistribution fit(double[][] data, boolean diagonal)
data - the training data.diagonal - true if covariance matrix is diagonal.public int length()
MultivariateDistributionlength in interface MultivariateDistributionpublic double entropy()
MultivariateDistributionentropy in interface MultivariateDistributionpublic double[] mean()
MultivariateDistributionmean in interface MultivariateDistributionpublic Matrix cov()
MultivariateDistributioncov in interface MultivariateDistributionpublic double scatter()
public double logp(double[] x)
MultivariateDistributionlogp in interface MultivariateDistributionpublic double p(double[] x)
MultivariateDistributionp in interface MultivariateDistributionpublic double cdf(double[] x)
cdf in interface MultivariateDistributionpublic double[] rand()
public double[][] rand(int n)
public MultivariateMixture.Component M(double[][] data, double[] posteriori)
MultivariateExponentialFamilyM in interface MultivariateExponentialFamilydata - the input data for estimationposteriori - the posteriori probability.public java.lang.String toString()
toString in class java.lang.Object