R: Assessing and Comparing NMF Models

summary {NMF} | R Documentation

## Assessing and Comparing NMF Models

### 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

      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

    #----------
    # 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)

[Package NMF version 0.21.0 Index]