Find optimal k of k-Medoid partitions using silhouette widths

optimal.k(x, nk = 10, plot = TRUE, cluster = TRUE, clara = FALSE, ...)

Arguments

x

Numeric dataframe, matrix or vector

nk

Number of clusters to test (2:nk)

plot

Plot cluster silhouettes(TRUE/FALSE)

cluster

Create cluster object with optimal k

clara

Use clara model for large data

...

Additional arguments passed to clara

Value

Object of class clust "pam" or "clara"

References

Theodoridis, S. & K. Koutroumbas(2006) Pattern Recognition 3rd ed.

See also

pam for details on Partitioning Around Medoids (PAM)

clara for details on Clustering Large Applications (clara)

Author

Jeffrey S. Evans <jeffrey_evans<at>tnc.org>

Examples

#> Loading required package: cluster
#> #> Attaching package: 'cluster'
#> The following object is masked from 'package:spatstat.geom': #> #> volume
x <- rbind(cbind(rnorm(10,0,0.5), rnorm(10,0,0.5)), cbind(rnorm(15,5,0.5), rnorm(15,5,0.5))) clust <- optimal.k(x, 20, plot=TRUE, cluster=TRUE)
#> Optimal-K: 2
plot(silhouette(clust), col = c('red', 'green'))
plot(clust, which.plots=1, main='K-Medoid fit')
# Extract multivariate and univariate mediods (class centers) clust$medoids
#> [,1] [,2] #> [1,] -0.3863414 -0.4797485 #> [2,] 4.8249686 4.9026229
pam(x[,1], 1)$medoids
#> [,1] #> [1,] 4.692233
# join clusters to data x <- data.frame(x, k=clust$clustering)