Class GMM
-
- All Implemented Interfaces:
-
java.io.Serializable,jline.lang.Copyable
public class GMM extends ContinuousDistribution implements Serializable
A Gaussian Mixture Model (GMM) distribution. This class represents a mixture of normal distributions, where each component has a weight, mean, and standard deviation.
-
-
Method Summary
Modifier and Type Method Description Array<double>getWeights()Array<double>getMeans()Array<double>getSigmas()static GMMfromMatrix(Matrix sgmm)Creates a GMM from a simplified matrix representation. MatrixtoMatrix()Converts this GMM to a simplified matrix representation. doublegetMean()Gets the mean (expected value) of this distribution. doublegetVar()Gets the variance of this distribution. doublegetSCV()Gets the squared coefficient of variation (SCV) of this distribution. doublegetSkewness()Gets the skewness of this distribution. doubleevalCDF(double x)Evaluates the cumulative distribution function (CDF) at the given point. doubleevalPDF(double x)doubleevalLST(double s)Evaluate the Laplace-Stieltjes Transform at s Array<double>sample(int n)Generates random samples from this distribution using default random generator. Array<double>sample(int n, Random random)Generates random samples from this distribution using the specified random generator. GMMconvolve(GMM other)Creates a new GMM by convolving this GMM with another GMM. static GMMmixture(GMM gmm1, GMM gmm2, double p1, double p2)Creates a mixture of two GMMs with specified weights. GMMmerge(int i, int j)Merges two components into one using moment matching. GMMautoMerge(int k)Automatically merges components to reduce the GMM to k components. intgetNumberOfComponents()StringtoString()-
Methods inherited from class jline.lang.processes.Distribution
evalProbInterval, getName, getNumParams, getParam, getRate, getSupport, isContinuous, isDisabled, isDiscrete, isImmediate, isMarkovian, mean, name, numParams, param, rate, scv, setNumParams, setParam, skewness, support, var -
Methods inherited from class jline.lang.Copyable
copy -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Method Detail
-
getWeights
Array<double> getWeights()
-
fromMatrix
static GMM fromMatrix(Matrix sgmm)
Creates a GMM from a simplified matrix representation. Each row contains [weight, mean, sigma].
-
toMatrix
Matrix toMatrix()
Converts this GMM to a simplified matrix representation. Each row contains [weight, mean, variance].
-
getMean
double getMean()
Gets the mean (expected value) of this distribution.
- Returns:
the mean value
-
getVar
double getVar()
Gets the variance of this distribution. Computed as SCV * mean^2.
- Returns:
the variance
-
getSCV
double getSCV()
Gets the squared coefficient of variation (SCV) of this distribution. SCV = Var(X) / E[X]^2.
- Returns:
the squared coefficient of variation
-
getSkewness
double getSkewness()
Gets the skewness of this distribution. Skewness measures the asymmetry of the probability distribution.
- Returns:
the skewness value
-
evalCDF
double evalCDF(double x)
Evaluates the cumulative distribution function (CDF) at the given point.
- Returns:
the CDF value at point t
-
evalPDF
double evalPDF(double x)
-
evalLST
double evalLST(double s)
Evaluate the Laplace-Stieltjes Transform at s
- Parameters:
s- the Laplace domain variable- Returns:
the LST value at s
-
sample
Array<double> sample(int n)
Generates random samples from this distribution using default random generator.
- Parameters:
n- the number of samples to generate- Returns:
array of random samples
-
sample
Array<double> sample(int n, Random random)
Generates random samples from this distribution using the specified random generator.
- Parameters:
n- the number of samples to generaterandom- the random number generator to use- Returns:
array of random samples
-
convolve
GMM convolve(GMM other)
Creates a new GMM by convolving this GMM with another GMM. Convolution corresponds to the sum of two independent random variables.
-
mixture
static GMM mixture(GMM gmm1, GMM gmm2, double p1, double p2)
Creates a mixture of two GMMs with specified weights.
-
getNumberOfComponents
int getNumberOfComponents()
-
-
-
-