Learn R Programming

NMF (version 0.2.2)

silhouette.NMF: Silhouette of NMF Clustering

Description

Silhouette of NMF Clustering

Usage

## S3 method for class 'NMF':
silhouette(x, what = NULL, order = NULL,
    ...)

Arguments

x
an NMF object, as returned by nmf.
what
defines the type of clustering the computed silhouettes are meant to assess: 'samples' for the clustering of samples (i.e. the columns of the target matrix), 'features' for the clustering of features (i.e. the rows of the
order
integer indexing vector that can be used to force the silhouette order.
...
extra arguments not used.

See Also

predict

Examples

Run this code
# roxygen generated flag
options(R_CHECK_RUNNING_EXAMPLES_=TRUE)

x <- rmatrix(100, 20, dimnames = list(paste0('a', 1:100), letters[1:20]))
# NB: using low value for maxIter for the example purpose only
res <- nmf(x, 4, nrun = 5, maxIter = 50)

# sample clustering from best fit
plot(silhouette(res))

# from consensus
plot(silhouette(res, what = 'consensus'))

# feature clustering
plot(silhouette(res, what = 'features'))

# average silhouette are computed in summary measures
summary(res)

# consensus silhouettes are ordered as on default consensusmap heatmap
op <- par(mfrow = c(1,2))
consensusmap(res)
si <- silhouette(res, what = 'consensus')
plot(si)
par(op)

# if the order is based on some custom numeric weights
op <- par(mfrow = c(1,2))
cm <- consensusmap(res, Rowv = runif(ncol(res)))
# NB: use reverse order because silhouettes are plotted top-down
si <- silhouette(res, what = 'consensus', order = rev(cm$rowInd))
plot(si)
par(op)

# do the reverse: order the heatmap as a set of silhouettes
si <- silhouette(res, what = 'features')
op <- par(mfrow = c(1,2))
basismap(res, Rowv = si)
plot(si)
par(op)

Run the code above in your browser using DataLab