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 multiplerun fit and a list of heterogenous fits
performed with the function nmf
.
Usage
1 2 3 4 
Arguments
object 
an NMF object. See available methods in section Methods. 
... 
extra arguments passed to the next

class 
known classes/cluster of samples specified
in one of the formats that is supported by the functions

target 
target matrix specified in one of the
formats supported by the functions 
Details
Due to the somehow hierarchical structure of the classes
mentionned in Description, their respective
summary
methods call each other in chain, each
superclass 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 fromnmf
.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 multiplerun fits. nrun
Number of runs performed to fit the model. This is always equal to 1 for
NMFfit
objects, but will vary for multiplerun 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 thesummary
method ofNMFfit
objects. SeeNMF
for details on the computed measures. In addition, the cophenetic correlation (cophcor
) anddispersion
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,NMFmethod
#
# 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,NMFfitmethod
#
# 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)
