NMFstd-class {NMF} | R Documentation |
NMF Model - Standard model
Description
This class implements the standard model of Nonnegative Matrix Factorization. It provides a general structure and generic functions to manage factorizations that follow the standard NMF model, as defined by Lee et al. (2001).
Details
Let V
be a n \times m
non-negative matrix and
r
a positive integer. In its standard form (see
references below), a NMF of V
is commonly defined
as a pair of matrices (W, H)
such that:
V \equiv W H,
where:
-
W
andH
aren \times r
andr \times m
matrices respectively with non-negative entries; -
\equiv
is to be understood with respect to some loss function. Common choices of loss functions are based on Frobenius norm or Kullback-Leibler divergence.
Integer r
is called the factorization rank.
Depending on the context of application of NMF, the
columns of W
and H
are given different names:
- columns of
W
basis vector, metagenes, factors, source, image basis
- columns of
H
mixture coefficients, metagene sample expression profiles, weights
- rows of
H
basis profiles, metagene expression profiles
NMF approaches have been successfully applied to several fields. The package NMF was implemented trying to use names as generic as possible for objects and methods.
The following terminology is used:
- samples
the columns of the target matrix
V
- features
the rows of the target matrix
V
- basis matrix
the first matrix factor
W
- basis vectors
the columns of first matrix factor
W
- mixture matrix
the second matrix factor
H
- mixtures coefficients
the columns of second matrix factor
H
However, because the package NMF was primarily implemented to work with gene expression microarray data, it also provides a layer to easily and intuitively work with objects from the Bioconductor base framework. See bioc-NMF for more details.
Slots
- W
A
matrix
that contains the basis matrix, i.e. the first matrix factor of the factorisation- H
A
matrix
that contains the coefficient matrix, i.e. the second matrix factor of the factorisation- bterms
a
data.frame
that contains the primary data that define fixed basis terms. Seebterms
.- ibterms
integer vector that contains the indexes of the basis components that are fixed, i.e. for which only the coefficient are estimated.
IMPORTANT: This slot is set on construction of an NMF model via
nmfModel
and is not recommended to not be subsequently changed by the end-user.- cterms
a
data.frame
that contains the primary data that define fixed coefficient terms. Seecterms
.- icterms
integer vector that contains the indexes of the basis components that have fixed coefficients, i.e. for which only the basis vectors are estimated.
IMPORTANT: This slot is set on construction of an NMF model via
nmfModel
and is not recommended to not be subsequently changed by the end-user.
Methods
- .basis
signature(object = "NMFstd")
: Get the basis matrix in standard NMF modelsThis function returns slot
W
ofobject
.- .basis<-
signature(object = "NMFstd", value = "matrix")
: Set the basis matrix in standard NMF modelsThis function sets slot
W
ofobject
.- bterms<-
signature(object = "NMFstd")
: Default method tries to coercevalue
into adata.frame
withas.data.frame
.- .coef
signature(object = "NMFstd")
: Get the mixture coefficient matrix in standard NMF modelsThis function returns slot
H
ofobject
.- .coef<-
signature(object = "NMFstd", value = "matrix")
: Set the mixture coefficient matrix in standard NMF modelsThis function sets slot
H
ofobject
.- cterms<-
signature(object = "NMFstd")
: Default method tries to coercevalue
into adata.frame
withas.data.frame
.- fitted
signature(object = "NMFstd")
: Compute the target matrix estimate in standard NMF models.The estimate matrix is computed as the product of the two matrix slots
W
andH
:\hat{V} = W H
- ibterms
signature(object = "NMFstd")
: Method for standard NMF models, which returns the integer vector that is stored in slotibterms
when a formula-based NMF model is instantiated.- icterms
signature(object = "NMFstd")
: Method for standard NMF models, which returns the integer vector that is stored in sloticterms
when a formula-based NMF model is instantiated.
References
Lee DD and Seung H (2001). "Algorithms for non-negative matrix factorization." _Advances in neural information processing systems_. <URL: http://scholar.google.com/scholar?q=intitle:Algorithms+for+non-negative+matrix+factorization>.
See Also
Other NMF-model:
initialize,NMFOffset-method
,
NMFns-class
, NMFOffset-class
Examples
# create a completely empty NMFstd object
new('NMFstd')
# create a NMF object based on one random matrix: the missing matrix is deduced
# Note this only works when using factory method NMF
n <- 50; r <- 3;
w <- rmatrix(n, r)
nmfModel(W=w)
# create a NMF object based on random (compatible) matrices
p <- 20
h <- rmatrix(r, p)
nmfModel(W=w, H=h)
# create a NMF object based on incompatible matrices: generate an error
h <- rmatrix(r+1, p)
try( new('NMFstd', W=w, H=h) )
try( nmfModel(w, h) )
# Giving target dimensions to the factory method allow for coping with dimension
# incompatibilty (a warning is thrown in such case)
nmfModel(r, W=w, H=h)