V - Vector type@Reference(authors="Y. Cheng", title="Mean shift, mode seeking, and clustering", booktitle="IEEE Transactions on Pattern Analysis and Machine Intelligence 17-8", url="https://doi.org/10.1109/34.400568", bibkey="DBLP:journals/pami/Cheng95") public class NaiveMeanShiftClustering<V extends NumberVector> extends AbstractDistanceBasedAlgorithm<V,Clustering<MeanModel>> implements ClusteringAlgorithm<Clustering<MeanModel>>
It also is not really parameter-free: the kernel needs to be specified, including a radius/bandwidth.
By using range queries, the algorithm does benefit from index structures!
TODO: add methods to automatically choose the bandwidth?
Reference:
 Y. Cheng
 Mean shift, mode seeking, and clustering
 IEEE Transactions on Pattern Analysis and Machine Intelligence 17-8
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
NaiveMeanShiftClustering.Parameterizer<V extends NumberVector>
Parameterizer. 
 | 
| Modifier and Type | Field and Description | 
|---|---|
(package private) double | 
bandwidth
Range of the kernel. 
 | 
(package private) KernelDensityFunction | 
kernel
Density estimation kernel. 
 | 
private static Logging | 
LOG
Class logger. 
 | 
(package private) static int | 
MAXITER
Maximum number of iterations. 
 | 
ALGORITHM_IDDISTANCE_FUNCTION_ID| Constructor and Description | 
|---|
NaiveMeanShiftClustering(DistanceFunction<? super V> distanceFunction,
                        KernelDensityFunction kernel,
                        double range)
Constructor. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
TypeInformation[] | 
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query. 
 | 
protected Logging | 
getLogger()
Get the (STATIC) logger for this class. 
 | 
Clustering<MeanModel> | 
run(Database database,
   Relation<V> relation)
Run the mean-shift clustering algorithm. 
 | 
getDistanceFunctionrunclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitrunprivate static final Logging LOG
KernelDensityFunction kernel
double bandwidth
static final int MAXITER
public NaiveMeanShiftClustering(DistanceFunction<? super V> distanceFunction, KernelDensityFunction kernel, double range)
distanceFunction - Distance functionkernel - Kernel functionrange - Kernel radiuspublic Clustering<MeanModel> run(Database database, Relation<V> relation)
database - Databaserelation - Data relationpublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithmgetInputTypeRestriction in interface AlgorithmgetInputTypeRestriction in class AbstractAlgorithm<Clustering<MeanModel>>protected Logging getLogger()
AbstractAlgorithmgetLogger in class AbstractAlgorithm<Clustering<MeanModel>>Copyright © 2019 ELKI Development Team. License information.