| DBSCANClustering {sharp} | R Documentation |
(Weighted) density-based clustering
Description
Runs Density-Based Spatial Clustering of Applications with Noise (DBSCAN)
clustering using implementation from dbscan. This is
also known as the k-medoids algorithm. If Lambda is provided,
clustering is applied on the weighted distance matrix calculated using the
COSA algorithm as implemented in cosa2. Otherwise,
distances are calculated using dist. This function is
not using stability.
Usage
DBSCANClustering(
xdata,
nc = NULL,
eps = NULL,
Lambda = NULL,
distance = "euclidean",
...
)
Arguments
xdata |
data matrix with observations as rows and variables as columns. |
nc |
matrix of parameters controlling the number of clusters in the
underlying algorithm specified in |
eps |
radius in density-based clustering, see
|
Lambda |
vector of penalty parameters (see argument |
distance |
character string indicating the type of distance to use. If
|
... |
additional parameters passed to |
Value
A list with:
comembership |
an array of binary and symmetric co-membership matrices. |
weights |
a matrix of median weights by feature. |
References
Kampert MM, Meulman JJ, Friedman JH (2017). “rCOSA: A Software Package for Clustering Objects on Subsets of Attributes.” Journal of Classification, 34(3), 514–547. doi:10.1007/s00357-017-9240-z.
Friedman JH, Meulman JJ (2004). “Clustering objects on subsets of attributes (with discussion).” Journal of the Royal Statistical Society: Series B (Statistical Methodology), 66(4), 815-849. doi:10.1111/j.1467-9868.2004.02059.x, https://rss.onlinelibrary.wiley.com/doi/pdf/10.1111/j.1467-9868.2004.02059.x, https://rss.onlinelibrary.wiley.com/doi/abs/10.1111/j.1467-9868.2004.02059.x.
See Also
Other clustering algorithms:
GMMClustering(),
HierarchicalClustering(),
KMeansClustering(),
PAMClustering()
Examples
if (requireNamespace("dbscan", quietly = TRUE)) {
# Data simulation
set.seed(1)
simul <- SimulateClustering(n = c(10, 10), pk = 50)
plot(simul)
# DBSCAN clustering
myclust <- DBSCANClustering(
xdata = simul$data,
eps = seq(0, 2 * sqrt(ncol(simul$data) - 1), by = 0.1)
)
# Weighted PAM clustering (using COSA)
if (requireNamespace("rCOSA", quietly = TRUE)) {
myclust <- DBSCANClustering(
xdata = simul$data,
eps = c(0.25, 0.5, 0.75),
Lambda = c(0.2, 0.5)
)
}
}