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_ID
DISTANCE_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.
|
getDistanceFunction
run
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
run
private 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()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<Clustering<MeanModel>>
protected Logging getLogger()
AbstractAlgorithm
getLogger
in class AbstractAlgorithm<Clustering<MeanModel>>
Copyright © 2019 ELKI Development Team. License information.