class GaussianMixture extends Serializable
This class performs expectation maximization for multivariate Gaussian Mixture Models (GMMs). A GMM represents a composite distribution of independent Gaussian distributions with associated "mixing" weights specifying each's contribution to the composite.
Given a set of sample points, this class will maximize the loglikelihood for a mixture of k Gaussians, iterating until the loglikelihood changes by less than convergenceTol, or until it has reached the max number of iterations. While this process is generally guaranteed to converge, it is not guaranteed to find a global optimum.
 Annotations
 @Since( "1.3.0" )
 Source
 GaussianMixture.scala
 Note
This algorithm is limited in its number of features since it requires storing a covariance matrix which has size quadratic in the number of features. Even when the number of features does not exceed this limit, this algorithm may perform poorly on highdimensional data. This is due to highdimensional data (a) making it difficult to cluster at all (based on statistical/theoretical arguments) and (b) numerical issues with Gaussian distributions.
 Alphabetic
 By Inheritance
 GaussianMixture
 Serializable
 Serializable
 AnyRef
 Any
 Hide All
 Show All
 Public
 All
Instance Constructors

new
GaussianMixture()
Constructs a default instance.
Constructs a default instance. The default parameters are {k: 2, convergenceTol: 0.01, maxIterations: 100, seed: random}.
 Annotations
 @Since( "1.3.0" )
Value Members

final
def
!=(arg0: Any): Boolean
 Definition Classes
 AnyRef → Any

final
def
##(): Int
 Definition Classes
 AnyRef → Any

final
def
==(arg0: Any): Boolean
 Definition Classes
 AnyRef → Any

final
def
asInstanceOf[T0]: T0
 Definition Classes
 Any

def
clone(): AnyRef
 Attributes
 protected[lang]
 Definition Classes
 AnyRef
 Annotations
 @throws( ... ) @native()

final
def
eq(arg0: AnyRef): Boolean
 Definition Classes
 AnyRef

def
equals(arg0: Any): Boolean
 Definition Classes
 AnyRef → Any

def
finalize(): Unit
 Attributes
 protected[lang]
 Definition Classes
 AnyRef
 Annotations
 @throws( classOf[java.lang.Throwable] )

final
def
getClass(): Class[_]
 Definition Classes
 AnyRef → Any
 Annotations
 @native()

def
getConvergenceTol: Double
Return the largest change in loglikelihood at which convergence is considered to have occurred.
Return the largest change in loglikelihood at which convergence is considered to have occurred.
 Annotations
 @Since( "1.3.0" )

def
getInitialModel: Option[GaussianMixtureModel]
Return the user supplied initial GMM, if supplied
Return the user supplied initial GMM, if supplied
 Annotations
 @Since( "1.3.0" )

def
getK: Int
Return the number of Gaussians in the mixture model
Return the number of Gaussians in the mixture model
 Annotations
 @Since( "1.3.0" )

def
getMaxIterations: Int
Return the maximum number of iterations allowed
Return the maximum number of iterations allowed
 Annotations
 @Since( "1.3.0" )

def
getSeed: Long
Return the random seed
Return the random seed
 Annotations
 @Since( "1.3.0" )

def
hashCode(): Int
 Definition Classes
 AnyRef → Any
 Annotations
 @native()

final
def
isInstanceOf[T0]: Boolean
 Definition Classes
 Any

final
def
ne(arg0: AnyRef): Boolean
 Definition Classes
 AnyRef

final
def
notify(): Unit
 Definition Classes
 AnyRef
 Annotations
 @native()

final
def
notifyAll(): Unit
 Definition Classes
 AnyRef
 Annotations
 @native()

def
run(data: JavaRDD[Vector]): GaussianMixtureModel
Javafriendly version of
run()
Javafriendly version of
run()
 Annotations
 @Since( "1.3.0" )

def
run(data: RDD[Vector]): GaussianMixtureModel
Perform expectation maximization
Perform expectation maximization
 Annotations
 @Since( "1.3.0" )

def
setConvergenceTol(convergenceTol: Double): GaussianMixture.this.type
Set the largest change in loglikelihood at which convergence is considered to have occurred.
Set the largest change in loglikelihood at which convergence is considered to have occurred.
 Annotations
 @Since( "1.3.0" )

def
setInitialModel(model: GaussianMixtureModel): GaussianMixture.this.type
Set the initial GMM starting point, bypassing the random initialization.
Set the initial GMM starting point, bypassing the random initialization. You must call setK() prior to calling this method, and the condition (model.k == this.k) must be met; failure will result in an IllegalArgumentException
 Annotations
 @Since( "1.3.0" )

def
setK(k: Int): GaussianMixture.this.type
Set the number of Gaussians in the mixture model.
Set the number of Gaussians in the mixture model. Default: 2
 Annotations
 @Since( "1.3.0" )

def
setMaxIterations(maxIterations: Int): GaussianMixture.this.type
Set the maximum number of iterations allowed.
Set the maximum number of iterations allowed. Default: 100
 Annotations
 @Since( "1.3.0" )

def
setSeed(seed: Long): GaussianMixture.this.type
Set the random seed
Set the random seed
 Annotations
 @Since( "1.3.0" )

final
def
synchronized[T0](arg0: ⇒ T0): T0
 Definition Classes
 AnyRef

def
toString(): String
 Definition Classes
 AnyRef → Any

final
def
wait(): Unit
 Definition Classes
 AnyRef
 Annotations
 @throws( ... )

final
def
wait(arg0: Long, arg1: Int): Unit
 Definition Classes
 AnyRef
 Annotations
 @throws( ... )

final
def
wait(arg0: Long): Unit
 Definition Classes
 AnyRef
 Annotations
 @throws( ... ) @native()