| densityClust {densityClust} | R Documentation |
This function takes a distance matrix and optionally a distance cutoff and calculates the values necessary for clustering based on the algorithm proposed by Alex Rodrigues and Alessandro Laio (see references). The actual assignment to clusters are done in a later step, based on user defined threshold values.
densityClust(distance, dc, gaussian = FALSE)
distance |
A distance matrix |
dc |
A distance cutoff for calculating the local density. If missing it will be estimated with estimateDc(distance) |
gaussian |
Logical. Should a gaussian kernel be used to estimate the density (defaults to FALSE) |
The function calculates rho and delta for the observations in the provided
distance matrix. If a distance cutoff is not provided this is first estimated
using estimateDc with default values.
The information kept in the densityCluster object is:
A vector of local density values
A vector of minimum distances to observations of higher density
The initial distance matrix
The distance cutoff used to calculate rho
A named vector specifying the threshold values for rho and delta used for cluster detection
A vector of indexes specifying the cluster center for each cluster
A vector of cluster affiliations for each observation. The clusters are referenced as indexes in the peaks vector
A logical vector specifying for each observation if it is considered part of the halo
Before running findClusters the threshold, peaks, clusters and halo data is NA.
A densityCluster object. See details for a description.
Rodriguez, A., & Laio, A. (2014). Clustering by fast search and find of density peaks. Science, 344(6191), 1492-1496. doi:10.1126/science.1242072
irisDist <- dist(iris[,1:4]) irisClust <- densityClust(irisDist, gaussian=TRUE) plot(irisClust) # Inspect clustering attributes to define thresholds irisClust <- findClusters(irisClust, rho=2, delta=2) plotMDS(irisClust) split(iris[,5], irisClust$clusters)