Shared Nearest Neighbor Clustering
Implements the shared nearest neighbor clustering algorithm by Ertoz, Steinbach and Kumar (2003).
sNNclust(x, k, eps, minPts, borderPoints = TRUE, ...)
x |
a data matrix/data.frame (Euclidean distance is used), a
precomputed dist object or a kNN object created with |
k |
Neighborhood size for nearest neighbor sparsification to create the shared NN graph. |
eps |
Two objects are only reachable from each other if they share at
least |
minPts |
minimum number of points that share at least |
borderPoints |
should border points be assigned to clusters like in DBSCAN? |
... |
additional arguments are passed on to the k nearest neighbor
search algorithm. See |
Algorithm:
Constructs a shared nearest neighbor graph for a given k. The edge weights are the number of shared k nearest neighbors (in the range of [0, k]).
Find each points SNN density, i.e., the number of points which have a
similarity of eps
or greater.
Find the core points, i.e., all points that have an SNN density greater
than MinPts
.
Form clusters from the core points and assign border points (i.e.,
non-core points which share at least eps
neighbors with a core point).
A object of class general_clustering
with the following
components:
cluster |
A integer vector with cluster assignments. Zero indicates noise points. |
type |
name of used clustering algorithm. |
param |
list of used clustering parameters. |
Michael Hahsler
Levent Ertoz, Michael Steinbach, Vipin Kumar, Finding Clusters of Different Sizes, Shapes, and Densities in Noisy, High Dimensional Data, SIAM International Conference on Data Mining, 2003, 47-59. doi: 10.1137/1.9781611972733.5
Other clustering functions:
dbscan()
,
extractFOSC()
,
hdbscan()
,
jpclust()
,
optics()
data("DS3") # Out of k = 20 NN 7 (eps) have to be shared to create a link in the sNN graph. # A point needs a least 16 (minPts) links in the sNN graph to be a core point. # Noise points have cluster id 0 and are shown in black. cl <- sNNclust(DS3, k = 20, eps = 7, minPts = 16) plot(DS3, col = cl$cluster + 1L, cex = .5)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.