PAMClustering {sharp} | R Documentation |
(Weighted) Partitioning Around Medoids
Description
Runs Partitioning Around Medoids (PAM) clustering using implementation from
pam
. 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
PAMClustering(xdata, nc = 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 |
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:
DBSCANClustering()
,
GMMClustering()
,
HierarchicalClustering()
,
KMeansClustering()
Examples
if (requireNamespace("cluster", quietly = TRUE)) {
# Data simulation
set.seed(1)
simul <- SimulateClustering(n = c(10, 10), pk = 50)
# PAM clustering
myclust <- PAMClustering(
xdata = simul$data,
nc = seq_len(20)
)
# Weighted PAM clustering (using COSA)
if (requireNamespace("rCOSA", quietly = TRUE)) {
myclust <- PAMClustering(
xdata = simul$data,
nc = seq_len(20),
Lambda = c(0.2, 0.5)
)
}
}