Package elki.clustering.kmeans
Class YinYangKMeans<V extends NumberVector>
- java.lang.Object
-
- elki.clustering.kmeans.AbstractKMeans<V,KMeansModel>
-
- elki.clustering.kmeans.YinYangKMeans<V>
-
- Type Parameters:
V
- Vector type
- All Implemented Interfaces:
Algorithm
,ClusteringAlgorithm<Clustering<KMeansModel>>
,KMeans<V,KMeansModel>
@Reference(authors="Y. Ding, Y. Zhao, X. Shen, M, Musuvathi, T. Mytkowicz", title="Yinyang K-Means: A Drop-In Replacement of the Classic K-Means with Consistent Speedup", booktitle="Proc. International Conference on Machine Learning (ICML 2015)", url="http://proceedings.mlr.press/v37/ding15.html", bibkey="DBLP:conf/icml/DingZSMM15") public class YinYangKMeans<V extends NumberVector> extends AbstractKMeans<V,KMeansModel>
Yin-Yang k-Means Clustering. This approach has one bound for each group of cluster centers, and sits in-between of Hamerly (one bound only) and Elkan (one bound for each center).Reference:
Y. Ding, Y. Zhao, X. Shen, M, Musuvathi, T. Mytkowicz
Yinyang K-Means: A Drop-In Replacement of the Classic K-Means with Consistent Speedup
Proc. International Conference on Machine Learning (ICML 2015)- Since:
- 0.8.0
- Author:
- Minh Nhat Nguyen, Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
YinYangKMeans.Instance
Instance for a particular data set.static class
YinYangKMeans.Par<V extends NumberVector>
Parameterization class.-
Nested classes/interfaces inherited from interface elki.Algorithm
Algorithm.Utils
-
-
Field Summary
Fields Modifier and Type Field Description private static int
GROUP_KMEANS_MAXITER
Use only up to 5 iterations of kmeans for grouping initial centers.private static Logging
LOG
Class loggerprivate int
t
Number of cluster center groups t-
Fields inherited from class elki.clustering.kmeans.AbstractKMeans
distance, initializer, k, maxiter
-
Fields inherited from interface elki.clustering.kmeans.KMeans
DISTANCE_FUNCTION_ID, INIT_ID, K_ID, MAXITER_ID, SEED_ID, VARSTAT_ID
-
-
Constructor Summary
Constructors Constructor Description YinYangKMeans(int k, int maxiter, KMeansInitialization initializer, int t)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Logging
getLogger()
Get the (STATIC) logger for this class.Clustering<KMeansModel>
run(Relation<V> rel)
Run the clustering algorithm.-
Methods inherited from class elki.clustering.kmeans.AbstractKMeans
getDistance, getInputTypeRestriction, incrementalUpdateMean, initialMeans, means, minusEquals, nearestMeans, plusEquals, plusMinusEquals, setDistance, setInitializer, setK
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface elki.clustering.ClusteringAlgorithm
autorun
-
-
-
-
Field Detail
-
LOG
private static final Logging LOG
Class logger
-
GROUP_KMEANS_MAXITER
private static final int GROUP_KMEANS_MAXITER
Use only up to 5 iterations of kmeans for grouping initial centers.- See Also:
- Constant Field Values
-
t
private int t
Number of cluster center groups t
-
-
Constructor Detail
-
YinYangKMeans
public YinYangKMeans(int k, int maxiter, KMeansInitialization initializer, int t)
Constructor.- Parameters:
k
- Number of clustersmaxiter
- Maximum number of iterationsinitializer
- Initialization methodt
- Number of cluster center groups for pruning
-
-
Method Detail
-
run
public Clustering<KMeansModel> run(Relation<V> rel)
Description copied from interface:KMeans
Run the clustering algorithm.- Parameters:
rel
- Relation to process.- Returns:
- Clustering result
-
getLogger
protected Logging getLogger()
Description copied from class:AbstractKMeans
Get the (STATIC) logger for this class.- Specified by:
getLogger
in classAbstractKMeans<V extends NumberVector,KMeansModel>
- Returns:
- the static logger
-
-