Documentation of 'org.ddogleg.clustering.gmm.ExpectationMaximizationGmm_F64' Java class
ExpectationMaximizationGmm_F64
org.ddogleg.clustering.gmm

Class ExpectationMaximizationGmm_F64

  • All Implemented Interfaces:
    ComputeClusters<double[]>


    public class ExpectationMaximizationGmm_F64
    extends java.lang.Object
    implements ComputeClusters<double[]>
    Standard expectation maximization based approach to fitting mixture-of-Gaussian models to a set of data. A locally optimal maximum likelihood estimate is found. The full covariance is found. Some other variants will estimate just diagonal elements or a single covariance, but that isn't yet supported.

    Converged if, , where D is the sum of point from cluster distance at iteration 'i', and tol is the convergence tolerance threshold.

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      AssignCluster<double[]> getAssignment()
      Returns a class which is used to assign a point to a cluster.
      double getDistanceMeasure()
      Returns the sum of all the distances between each point in the set.
      void init(int pointDimension, long randomSeed)
      Must be called first to initializes internal data structures.
      void process(java.util.List<double[]> points, int numCluster)
      Computes a set of clusters which segment the points into numCluster sets.
      void setVerbose(boolean verbose)
      If set to true then information about status will be printed to standard out.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ExpectationMaximizationGmm_F64

        public ExpectationMaximizationGmm_F64(int maxIterations,
                                              double convergeTol,
                                              InitializeGmm_F64 selectInitial)
        Configures EM parameters
        Parameters:
        maxIterations - Maximum number of iterations
        convergeTol - If the relative change in score is less or equal than this amount it has converged
        selectInitial - Used to select initial seeds for the clusters
    • Method Detail

      • init

        public void init(int pointDimension,
                         long randomSeed)
        Description copied from interface: ComputeClusters
        Must be called first to initializes internal data structures. Only needs to be called once.
        Specified by:
        init in interface ComputeClusters<double[]>
        Parameters:
        pointDimension - Number of degrees of freedom in each point.
        randomSeed - Seed for any random number generators used internally.
      • process

        public void process(java.util.List<double[]> points,
                            int numCluster)
        Description copied from interface: ComputeClusters
        Computes a set of clusters which segment the points into numCluster sets.
        Specified by:
        process in interface ComputeClusters<double[]>
        Parameters:
        points - Set of points which are to be clustered. Not modified.
        numCluster - Number of clusters it will use to split the points.
      • getDistanceMeasure

        public double getDistanceMeasure()
        Description copied from interface: ComputeClusters

        Returns the sum of all the distances between each point in the set. Can be used to evaluate the quality of fit for all the clusters. Can only be used to compare when the same number of clusters is uesd.

        NOTE: The specific distance measure is not specified and is application specific.
        Specified by:
        getDistanceMeasure in interface ComputeClusters<double[]>
        Returns:
        sum of distance between each point and their respective clusters.
      • setVerbose

        public void setVerbose(boolean verbose)
        Description copied from interface: ComputeClusters
        If set to true then information about status will be printed to standard out. By default verbose is off
        Specified by:
        setVerbose in interface ComputeClusters<double[]>
        Parameters:
        verbose - true for versbose mode. False for quite mode.

DataMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.