gov.sandia.cognition.statistics.distribution
Class MultivariateMixtureDensityModel<DistributionType extends ClosedFormComputableDistribution<Vector>>

java.lang.Object
  extended by gov.sandia.cognition.util.AbstractCloneableSerializable
      extended by gov.sandia.cognition.statistics.AbstractDistribution<DataType>
          extended by gov.sandia.cognition.statistics.distribution.LinearMixtureModel<Vector,DistributionType>
              extended by gov.sandia.cognition.statistics.distribution.MultivariateMixtureDensityModel<DistributionType>
Type Parameters:
DistributionType - Type of Distribution in the mixture
All Implemented Interfaces:
Vectorizable, ClosedFormComputableDistribution<Vector>, ClosedFormDistribution<Vector>, ComputableDistribution<Vector>, Distribution<Vector>, DistributionWithMean<Vector>, CloneableSerializable, Serializable, Cloneable
Direct Known Subclasses:
MultivariateMixtureDensityModel.PDF

@PublicationReference(author="Wikipedia",
                      title="Mixture Model",
                      type=WebPage,
                      year=2009,
                      url="http://en.wikipedia.org/wiki/Mixture_model")
public class MultivariateMixtureDensityModel<DistributionType extends ClosedFormComputableDistribution<Vector>>
extends LinearMixtureModel<Vector,DistributionType>
implements ClosedFormComputableDistribution<Vector>

A LinearMixtureModel of multivariate distributions with associated PDFs.

Since:
3.1
Author:
Kevin R. Dixon
See Also:
Serialized Form

Nested Class Summary
static class MultivariateMixtureDensityModel.PDF<DistributionType extends ClosedFormComputableDistribution<Vector>>
          PDF of the MultivariateMixtureDensityModel
 
Field Summary
 
Fields inherited from class gov.sandia.cognition.statistics.distribution.LinearMixtureModel
distributions, priorWeights
 
Constructor Summary
MultivariateMixtureDensityModel(Collection<? extends DistributionType> distributions)
          Creates a new instance of MultivariateMixtureDensityModel
MultivariateMixtureDensityModel(Collection<? extends DistributionType> distributions, double[] priorWeights)
          Creates a new instance of MultivariateMixtureDensityModel
MultivariateMixtureDensityModel(MultivariateMixtureDensityModel<? extends DistributionType> other)
          Copy Constructor
 
Method Summary
 MultivariateMixtureDensityModel<DistributionType> clone()
          This makes public the clone method on the Object class and removes the exception that it throws.
 void convertFromVector(Vector parameters)
          Converts the object from a Vector of parameters.
 Vector convertToVector()
          Converts the object to a vector.
 Vector getMean()
          Gets the arithmetic mean, or "first central moment" or "expectation", of the distribution.
 MultivariateMixtureDensityModel.PDF<DistributionType> getProbabilityFunction()
          Gets the distribution function associated with this Distribution, either the PDF or PMF.
 
Methods inherited from class gov.sandia.cognition.statistics.distribution.LinearMixtureModel
getDistributionCount, getDistributions, getPriorWeights, getPriorWeightSum, sample, sample, setDistributions, setPriorWeights, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface gov.sandia.cognition.statistics.Distribution
sample, sample
 

Constructor Detail

MultivariateMixtureDensityModel

public MultivariateMixtureDensityModel(Collection<? extends DistributionType> distributions)
Creates a new instance of MultivariateMixtureDensityModel

Parameters:
distributions - Underlying distributions from which we sample

MultivariateMixtureDensityModel

public MultivariateMixtureDensityModel(Collection<? extends DistributionType> distributions,
                                       double[] priorWeights)
Creates a new instance of MultivariateMixtureDensityModel

Parameters:
distributions - Underlying distributions from which we sample
priorWeights - Weights proportionate by which the distributions are sampled

MultivariateMixtureDensityModel

public MultivariateMixtureDensityModel(MultivariateMixtureDensityModel<? extends DistributionType> other)
Copy Constructor

Parameters:
other - MultivariateMixtureDensityModel to copy
Method Detail

clone

public MultivariateMixtureDensityModel<DistributionType> clone()
Description copied from class: AbstractCloneableSerializable
This makes public the clone method on the Object class and removes the exception that it throws. Its default behavior is to automatically create a clone of the exact type of object that the clone is called on and to copy all primitives but to keep all references, which means it is a shallow copy. Extensions of this class may want to override this method (but call super.clone() to implement a "smart copy". That is, to target the most common use case for creating a copy of the object. Because of the default behavior being a shallow copy, extending classes only need to handle fields that need to have a deeper copy (or those that need to be reset). Some of the methods in ObjectUtil may be helpful in implementing a custom clone method. Note: The contract of this method is that you must use super.clone() as the basis for your implementation.

Specified by:
clone in interface Vectorizable
Specified by:
clone in interface CloneableSerializable
Overrides:
clone in class LinearMixtureModel<Vector,DistributionType extends ClosedFormComputableDistribution<Vector>>
Returns:
A clone of this object.

getMean

public Vector getMean()
Description copied from interface: DistributionWithMean
Gets the arithmetic mean, or "first central moment" or "expectation", of the distribution.

Specified by:
getMean in interface DistributionWithMean<Vector>
Returns:
Mean of the distribution.

convertToVector

public Vector convertToVector()
Description copied from interface: Vectorizable
Converts the object to a vector.

Specified by:
convertToVector in interface Vectorizable
Returns:
The Vector form of the object.

convertFromVector

public void convertFromVector(Vector parameters)
Description copied from interface: Vectorizable
Converts the object from a Vector of parameters.

Specified by:
convertFromVector in interface Vectorizable
Parameters:
parameters - The parameters to incorporate.

getProbabilityFunction

public MultivariateMixtureDensityModel.PDF<DistributionType> getProbabilityFunction()
Description copied from interface: ComputableDistribution
Gets the distribution function associated with this Distribution, either the PDF or PMF.

Specified by:
getProbabilityFunction in interface ComputableDistribution<Vector>
Returns:
Distribution function associated with this Distribution.