apcluster-package {apcluster} | R Documentation |
APCluster Package
Description
The apcluster package implements affinity propagation according to Frey and Dueck and a method for exemplar-based agglomerative clustering. It further offers various functions for plotting clustering results.
Details
The central function is apcluster
. It runs affinity
propagation on a given similarity matrix or it creates a similarity matrix
for a given data set and similarity measure and runs affinity propagation
on this matrix. The function returns an APResult
object from which the clustering itself and information about the affinity
propagation run can be obtained. Leveraged affinity propagation clustering
apclusterL
allows efficient clustering of large datasets by
using only a subset of the similarities. The package further implements
an exemplar-based agglomerative clustering method aggExCluster
that can be used for computing a complete cluster hierarchy, but also for
joining fine-grained clusters previously obtained by affinity propagation
clustering. Further functions are implemented to visualize the
results and to create distance matrices.
Author(s)
Ulrich Bodenhofer, Andreas Kothmeier, Johannes Palme, Chrats Melkonian, and Nikola Kostic
References
https://github.com/UBod/apcluster
Bodenhofer, U., Kothmeier, A., and Hochreiter, S. (2011) APCluster: an R package for affinity propagation clustering. Bioinformatics 27, 2463-2464. DOI: doi:10.1093/bioinformatics/btr406.
Frey, B. J. and Dueck, D. (2007) Clustering by passing messages between data points. Science 315, 972-976. DOI: doi:10.1126/science.1136800.
Examples
## create two Gaussian clouds
cl1 <- cbind(rnorm(100, 0.2, 0.05), rnorm(100, 0.8, 0.06))
cl2 <- cbind(rnorm(100, 0.7, 0.08), rnorm(100, 0.3, 0.05))
x <- rbind(cl1, cl2)
## compute similarity matrix (negative squared Euclidean)
sim <- negDistMat(x, r=2)
## run affinity propagation
apres <- apcluster(sim, details=TRUE)
## show details of clustering results
show(apres)
## plot information about clustering run
plot(apres)
## plot clustering result
plot(apres, x)
## employ agglomerative clustering to join clusters
aggres <- aggExCluster(sim, apres)
## show information
show(aggres)
show(cutree(aggres, 2))
## plot dendrogram
plot(aggres)
## plot clustering result for k=2 clusters
plot(aggres, x, k=2)
## plot heatmap
heatmap(apres, sim)
## leveraged apcluster
apresL <- apclusterL(s=negDistMat(r=2), x=x, frac=0.2, sweeps=3)
## show details of clustering results
show(apresL)
## plot clustering result
plot(apresL, x)