Assessing and Comparing NMF Models

Share:

Description

The NMF package defines summary methods for different classes of objects, which helps assessing and comparing the quality of NMF models by computing a set of quantitative measures, e.g. with respect to their ability to recover known classes and/or the original target matrix.

The most useful methods are for classes NMF, NMFfit, NMFfitX and NMFList, which compute summary measures for, respectively, a single NMF model, a single fit, a multiple-run fit and a list of heterogenous fits performed with the function nmf.

Usage

1
2
3
4
  summary(object, ...)

  ## S4 method for signature 'NMF'
summary(object, class, target)

Arguments

object

an NMF object. See available methods in section Methods.

...

extra arguments passed to the next summary method.

class

known classes/cluster of samples specified in one of the formats that is supported by the functions entropy and purity.

target

target matrix specified in one of the formats supported by the functions rss and evar

Details

Due to the somehow hierarchical structure of the classes mentionned in Description, their respective summary methods call each other in chain, each super-class adding some extra measures, only relevant for objects of a specific class.

Methods

summary

signature(object = "NMF"): Computes summary measures for a single NMF model.

The following measures are computed:

sparseness

Sparseness of the factorization computed by the function sparseness.

entropy

Purity of the clustering, with respect to known classes, computed by the function purity.

entropy

Entropy of the clustering, with respect to known classes, computed by the function entropy.

RSS

Residual Sum of Squares computed by the function rss.

evar

Explained variance computed by the function evar.

summary

signature(object = "NMFfit"): Computes summary measures for a single fit from nmf.

This method adds the following measures to the measures computed by the method summary,NMF:

residuals

Residual error as measured by the objective function associated to the algorithm used to fit the model.

niter

Number of iterations performed to achieve convergence of the algorithm.

cpu

Total CPU time required for the fit.

cpu.all

Total CPU time required for the fit. For NMFfit objects, this element is always equal to the value in “cpu”, but will be different for multiple-run fits.

nrun

Number of runs performed to fit the model. This is always equal to 1 for NMFfit objects, but will vary for multiple-run fits.

summary

signature(object = "NMFfitX"): Computes a set of measures to help evaluate the quality of the best fit of the set. The result is similar to the result from the summary method of NMFfit objects. See NMF for details on the computed measures. In addition, the cophenetic correlation (cophcor) and dispersion coefficients of the consensus matrix are returned, as well as the total CPU time (runtime.all).

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#----------
# summary,NMF-method
#----------
# random NMF model
x <- rnmf(3, 20, 12)
summary(x)
summary(x, gl(3, 4))
summary(x, target=rmatrix(x))
summary(x, gl(3,4), target=rmatrix(x))

#----------
# summary,NMFfit-method
#----------
# generate a synthetic dataset with known classes: 50 features, 18 samples (5+5+8)
n <- 50; counts <- c(5, 5, 8);
V <- syntheticNMF(n, counts)
cl <- unlist(mapply(rep, 1:3, counts))

# perform default NMF with rank=2
x2 <- nmf(V, 2)
summary(x2, cl, V)
# perform default NMF with rank=2
x3 <- nmf(V, 3)
summary(x2, cl, V)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.