Class ExponionKMeans<V extends elki.data.NumberVector>

  • Type Parameters:
    V - vector datatype
    All Implemented Interfaces:
    elki.Algorithm, ClusteringAlgorithm<Clustering<KMeansModel>>, KMeans<V,​KMeansModel>
    Direct Known Subclasses:
    ShallotKMeans

    @Reference(authors="J. Newling",
               title="Fast k-means with accurate bounds",
               booktitle="Proc. 33nd Int. Conf. on Machine Learning, ICML 2016",
               url="http://jmlr.org/proceedings/papers/v48/newling16.html",
               bibkey="DBLP:conf/icml/NewlingF16")
    @Priority(199)
    public class ExponionKMeans<V extends elki.data.NumberVector>
    extends HamerlyKMeans<V>
    Newlings's Exponion k-means algorithm, exploiting the triangle inequality.

    This is not a complete implementation, the approximative sorting part is missing. We also had to guess on the paper how to make best use of F.

    Reference:

    J. Newling
    Fast k-means with accurate bounds
    Proc. 33nd Int. Conf. on Machine Learning, ICML 2016

    Since:
    0.7.5
    Author:
    Erich Schubert
    • Field Detail

      • LOG

        private static final elki.logging.Logging LOG
        The logger for this class.
    • Constructor Detail

      • ExponionKMeans

        public ExponionKMeans​(elki.distance.NumberVectorDistance<? super V> distance,
                              int k,
                              int maxiter,
                              KMeansInitialization initializer,
                              boolean varstat)
        Constructor.
        Parameters:
        distance - distance function
        k - k parameter
        maxiter - Maxiter parameter
        initializer - Initialization method
        varstat - Compute the variance statistic
    • Method Detail

      • run

        public Clustering<KMeansModel> run​(elki.database.relation.Relation<V> relation)
        Description copied from interface: KMeans
        Run the clustering algorithm.
        Specified by:
        run in interface KMeans<V extends elki.data.NumberVector,​KMeansModel>
        Overrides:
        run in class HamerlyKMeans<V extends elki.data.NumberVector>
        Parameters:
        relation - Relation to process.
        Returns:
        Clustering result
      • getLogger

        protected elki.logging.Logging getLogger()
        Description copied from class: AbstractKMeans
        Get the (STATIC) logger for this class.
        Overrides:
        getLogger in class HamerlyKMeans<V extends elki.data.NumberVector>
        Returns:
        the static logger