Class KMeansMinusMinus<V extends NumberVector>

  • Type Parameters:
    V - vector datatype
    All Implemented Interfaces:
    Algorithm, ClusteringAlgorithm<Clustering<KMeansModel>>, KMeans<V,​KMeansModel>

    @Title("K-Means--")
    @Reference(authors="S. Chawla, A. Gionis",
               title="k-means--: A Unified Approach to Clustering and Outlier Detection",
               booktitle="Proc. 13th SIAM Int. Conf. on Data Mining (SDM 2013)",
               url="https://doi.org/10.1137/1.9781611972832.21",
               bibkey="DBLP:conf/sdm/ChawlaG13")
    public class KMeansMinusMinus<V extends NumberVector>
    extends AbstractKMeans<V,​KMeansModel>
    k-means--: A Unified Approach to Clustering and Outlier Detection.

    Similar to Lloyds K-means algorithm, but ignores the farthest points when updating the means, considering them to be outliers.

    Reference:

    S. Chawla, A. Gionis
    k-means--: A Unified Approach to Clustering and Outlier Detection
    Proc. 13th SIAM Int. Conf. on Data Mining (SDM 2013)

    Since:
    0.7.5
    Author:
    Jonas Steinke
    • Field Detail

      • LOG

        private static final Logging LOG
        The logger for this class.
      • rate

        public double rate
        Outlier rate.
      • noiseFlag

        public boolean noiseFlag
        Create a noise cluster, otherwise assign to the nearest cluster.
    • Constructor Detail

      • KMeansMinusMinus

        public KMeansMinusMinus​(NumberVectorDistance<? super V> distance,
                                int k,
                                int maxiter,
                                KMeansInitialization initializer,
                                double rate,
                                boolean noiseFlag)
        Constructor.
        Parameters:
        distance - distance function
        k - k parameter
        maxiter - Maxiter parameter
        initializer - Initialization method
        noiseFlag - Create a noise cluster instead of assigning to the nearest cluster