Package smile.clustering
Class DENCLUE
java.lang.Object
smile.clustering.PartitionClustering
smile.clustering.DENCLUE
- All Implemented Interfaces:
Serializable
DENsity CLUstering. The DENCLUE algorithm employs a cluster model based on
kernel density estimation. A cluster is defined by a local maximum of the
estimated density function. Observations going to the same local maximum
are put into the same cluster.
Clearly, DENCLUE doesn't work on data with uniform distribution. In high dimensional space, the data always look like uniformly distributed because of the curse of dimensionality. Therefore, DENCLUDE doesn't work well on high-dimensional data in general.
References
- A. Hinneburg and D. A. Keim. A general approach to clustering in large databases with noise. Knowledge and Information Systems, 5(4):387-415, 2003.
- Alexander Hinneburg and Hans-Henning Gabriel. DENCLUE 2.0: Fast Clustering based on Kernel Density Estimation. IDA, 2007.
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionfinal double[][]
The density attractor of each observation.Fields inherited from class smile.clustering.PartitionClustering
k, OUTLIER, size, y
-
Constructor Summary
ConstructorDescriptionDENCLUE
(int k, double[][] attractors, double[] radius, double[][] samples, double sigma, int[] y, double tol) Constructor. -
Method Summary
Methods inherited from class smile.clustering.PartitionClustering
run, seed, toString
-
Field Details
-
attractors
public final double[][] attractorsThe density attractor of each observation.
-
-
Constructor Details
-
DENCLUE
public DENCLUE(int k, double[][] attractors, double[] radius, double[][] samples, double sigma, int[] y, double tol) Constructor.- Parameters:
k
- the number of clusters.attractors
- the density attractor of each observation.radius
- the radius of density attractor.samples
- the samples in the iterations of hill climbing.sigma
- the smooth parameter in the Gaussian kernel. The user can choose sigma such that number of density attractors is constant for a long interval of sigma.y
- the cluster labels.tol
- the tolerance of hill-climbing procedure.
-
-
Method Details
-
fit
Clustering data.- Parameters:
data
- the input data of which each row is an observation.sigma
- the smooth parameter in the Gaussian kernel. The user can choose sigma such that number of density attractors is constant for a long interval of sigma.m
- the number of selected samples used in the iteration. This number should be much smaller than the number of observations to speed up the algorithm. It should also be large enough to capture the sufficient information of underlying distribution.- Returns:
- the model.
-
fit
Clustering data.- Parameters:
data
- the input data of which each row is an observation.sigma
- the smooth parameter in the Gaussian kernel. The user can choose sigma such that number of density attractors is constant for a long interval of sigma.m
- the number of selected samples used in the iteration. This number should be much smaller than the number of observations to speed up the algorithm. It should also be large enough to capture the sufficient information of underlying distribution.tol
- the tolerance of hill-climbing procedure.minPts
- the minimum number of neighbors for a core attractor.- Returns:
- the model.
-
predict
public int predict(double[] x) Classifies a new observation.- Parameters:
x
- a new observation.- Returns:
- the cluster label. Note that it may be
PartitionClustering.OUTLIER
.
-