Class TextbookSphericalGaussianModel

  • All Implemented Interfaces:
    EMClusterModel<elki.data.NumberVector,​EMModel>

    public class TextbookSphericalGaussianModel
    extends java.lang.Object
    implements EMClusterModel<elki.data.NumberVector,​EMModel>
    Simple spherical Gaussian cluster.
    Since:
    0.7.0
    Author:
    Andreas Lang
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) double logNorm
      Normalization factor.
      (package private) double logNormDet
      Normalization factor.
      (package private) double[] mean
      Mean vector.
      (package private) double[] nmea
      Temporary storage, to avoid reallocations.
      (package private) double priorvar
      Prior variance, for MAP estimation.
      (package private) double variance
      Variances.
      (package private) double weight
      Weight aggregation sum.
      (package private) double wsum
      Weight aggregation sum.
    • Field Detail

      • mean

        double[] mean
        Mean vector.
      • variance

        double variance
        Variances.
      • nmea

        double[] nmea
        Temporary storage, to avoid reallocations.
      • logNorm

        double logNorm
        Normalization factor.
      • logNormDet

        double logNormDet
        Normalization factor.
      • weight

        double weight
        Weight aggregation sum.
      • wsum

        double wsum
        Weight aggregation sum.
      • priorvar

        double priorvar
        Prior variance, for MAP estimation.
    • Constructor Detail

      • TextbookSphericalGaussianModel

        public TextbookSphericalGaussianModel​(double weight,
                                              double[] mean)
        Constructor.
        Parameters:
        weight - Cluster weight
        mean - Initial mean
      • TextbookSphericalGaussianModel

        public TextbookSphericalGaussianModel​(double weight,
                                              double[] mean,
                                              double var)
        Constructor.
        Parameters:
        weight - Cluster weight
        mean - Initial mean
        var - Initial variance
    • Method Detail

      • updateE

        public void updateE​(elki.data.NumberVector vec,
                            double wei)
        Description copied from interface: EMClusterModel
        Process one data point in the E step
        Specified by:
        updateE in interface EMClusterModel<elki.data.NumberVector,​EMModel>
        Parameters:
        vec - Vector to process
        wei - Weight of point ("responsibility" of the cluster)
      • finalizeEStep

        public void finalizeEStep​(double weight,
                                  double prior)
        Description copied from interface: EMClusterModel
        Finalize the E step.
        Specified by:
        finalizeEStep in interface EMClusterModel<elki.data.NumberVector,​EMModel>
        Parameters:
        weight - weight of the cluster
        prior - MAP prior (0 for MLE)
      • mahalanobisDistance

        public double mahalanobisDistance​(double[] vec)
        Compute the Mahalanobis distance from the centroid for a given vector.
        Parameters:
        vec - Vector
        Returns:
        Mahalanobis distance
      • mahalanobisDistance

        public double mahalanobisDistance​(elki.data.NumberVector vec)
        Compute the Mahalanobis distance from the centroid for a given vector.
        Parameters:
        vec - Vector
        Returns:
        Mahalanobis distance
      • estimateLogDensity

        public double estimateLogDensity​(elki.data.NumberVector vec)
        Description copied from interface: EMClusterModel
        Estimate the log likelihood of a vector.
        Specified by:
        estimateLogDensity in interface EMClusterModel<elki.data.NumberVector,​EMModel>
        Parameters:
        vec - Vector
        Returns:
        log likelihood.
      • getWeight

        public double getWeight()
        Description copied from interface: EMClusterModel
        Get the cluster weight.
        Specified by:
        getWeight in interface EMClusterModel<elki.data.NumberVector,​EMModel>
        Returns:
        Cluster weight
      • setWeight

        public void setWeight​(double weight)
        Description copied from interface: EMClusterModel
        Set the cluster weight.
        Specified by:
        setWeight in interface EMClusterModel<elki.data.NumberVector,​EMModel>
        Parameters:
        weight - Cluster weight