Class KDTreeFilteringKMeans<V extends NumberVector>
- java.lang.Object
-
- elki.clustering.kmeans.AbstractKMeans<V,KMeansModel>
-
- elki.clustering.kmeans.KDTreePruningKMeans<V>
-
- elki.clustering.kmeans.KDTreeFilteringKMeans<V>
-
- Type Parameters:
V
- vector datatype
- All Implemented Interfaces:
Algorithm
,ClusteringAlgorithm<Clustering<KMeansModel>>
,KMeans<V,KMeansModel>
@Title("K-d-tree K-means with Filtering") @Reference(authors="D. Pelleg, A. Moore",title="Accelerating Exact k-means Algorithms with Geometric Reasoning",booktitle="Proc. ACM SIGKDD Int. Conf. Knowledge Discovery and Data Mining",url="https://doi.org/10.1145/312129.312248",bibkey="DBLP:conf/kdd/PellegM99") @Reference(authors="T. Kanungo, D. M. Mount, N. S. Netanyahu, C. D. Piatko, R. Silverman, A. Y. Wu",title="Computing Nearest Neighbors for Moving Points and Applications to Clustering",booktitle="Proc. 10th ACM-SIAM Symposium on Discrete Algorithms (SODA\'99)",url="http://dl.acm.org/citation.cfm?id=314500.315095",bibkey="DBLP:conf/soda/KanungoMNPSW99") @Reference(authors="T. Kanungo, D. M. Mount, N. S. Netanyahu, C. D. Piatko, R. Silverman, A. Y. Wu",title="An Efficient k-Means Clustering Algorithm: Analysis and Implementation",booktitle="IEEE Transactions on Pattern Analysis and Machine Intelligence 24(7)",url="https://doi.org/10.1109/TPAMI.2002.1017616",bibkey="DBLP:journals/pami/KanungoMNPSW02") public class KDTreeFilteringKMeans<V extends NumberVector> extends KDTreePruningKMeans<V>
Filtering or "blacklisting" K-means with k-d-tree acceleration.This is an implementation of the slightly later (1999) variant of Pelleg and Moore respectively Kanungo et al. using hyperplanes for filtering instead of a similar approach using minimum and maximum distances published in 1997 by Alsabti et al., see
KDTreePruningKMeans
.References:
D. Pelleg and A. Moore
Accelerating Exact k-means Algorithms with Geometric Reasoning
Proc. ACM SIGKDD Int. Conf. Knowledge Discovery and Data MiningT. Kanungo, D. M. Mount, N. S. Netanyahu, C. D. Piatko, R. Silverman, A. Y. Wu
Computing Nearest Neighbors for Moving Points and Applications to Clustering
Proc. 10th ACM-SIAM Symposium on Discrete Algorithms (SODA'99)A more detailed analysis appeared later in:
T. Kanungo, D. M. Mount, N. S. Netanyahu, C. D. Piatko, R. Silverman, A. Y. Wu
An Efficient k-Means Clustering Algorithm: Analysis and Implementation
IEEE Transactions on Pattern Analysis and Machine Intelligence 24(7)- Since:
- 0.8.0
- Author:
- Cedrik Lüdicke (initial version), Erich Schubert (optimizations, rewrite)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
KDTreeFilteringKMeans.Instance
Inner instance, storing state for a single data set.static class
KDTreeFilteringKMeans.Par<V extends NumberVector>
Parameterization class.-
Nested classes/interfaces inherited from class elki.clustering.kmeans.KDTreePruningKMeans
KDTreePruningKMeans.KDNode, KDTreePruningKMeans.Split
-
Nested classes/interfaces inherited from interface elki.Algorithm
Algorithm.Utils
-
-
Field Summary
Fields Modifier and Type Field Description private static Logging
LOG
The logger for this class.-
Fields inherited from class elki.clustering.kmeans.KDTreePruningKMeans
leafsize, split
-
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 KDTreeFilteringKMeans(NumberVectorDistance<? super V> distance, int k, int maxiter, KMeansInitialization initializer, KDTreePruningKMeans.Split split, int leafsize)
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> relation)
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
The logger for this class.
-
-
Constructor Detail
-
KDTreeFilteringKMeans
public KDTreeFilteringKMeans(NumberVectorDistance<? super V> distance, int k, int maxiter, KMeansInitialization initializer, KDTreePruningKMeans.Split split, int leafsize)
Constructor.- Parameters:
distance
- distance functionk
- k parametermaxiter
- Maxiter parameterinitializer
- Initialization methodsplit
- Splitting strategyleafsize
- Leaf size
-
-
Method Detail
-
run
public Clustering<KMeansModel> run(Relation<V> relation)
Description copied from interface:KMeans
Run the clustering algorithm.- Specified by:
run
in interfaceKMeans<V extends NumberVector,KMeansModel>
- Overrides:
run
in classKDTreePruningKMeans<V extends NumberVector>
- Parameters:
relation
- Relation to process.- Returns:
- Clustering result
-
getLogger
protected Logging getLogger()
Description copied from class:AbstractKMeans
Get the (STATIC) logger for this class.- Overrides:
getLogger
in classKDTreePruningKMeans<V extends NumberVector>
- Returns:
- the static logger
-
-