silhouette.NMF {NMF} | R Documentation

## 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 target matrix), and `'chc'` for the consensus clustering of samples as defined by hierarchical clustering dendrogram, `'consensus'` for the consensus clustering of samples, with clustered ordered as in the default hierarchical clustering used by `consensusmap` when plotting the heatmap of the consensus matrix (for multi-run NMF fits). That is `dist = 1 - consensus(x)`, average linkage and reordering based on row means.

`order` | integer indexing vector that can be used to force the silhouette order.
`...` | extra arguments not used.

### See Also

`predict`

### Examples

    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
    ## Not run:  op <- par(mfrow = c(1,2))
    consensusmap(res)
    si <- silhouette(res, what = 'consensus')
    plot(si)
    ## Not run:  par(op)

    # if the order is based on some custom numeric weights
    ## Not run:  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)
    ## Not run:  par(op)

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

[Package NMF version 0.20.6 Index]