Description Usage Arguments Details Slots Methods (by generic) References See Also Examples
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 and Seung (2001).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | ## S4 method for signature 'NMFstd'
show(object)
## S4 method for signature 'NMFstd'
.basis(object, slice = NULL)
## S4 replacement method for signature 'NMFstd,array'
.basis(object) <- value
## S4 replacement method for signature 'NMFstd,mMatrix'
.basis(object, slice = 1L) <- value
## S4 method for signature 'NMFstd'
.coef(object, slice = NULL)
## S4 replacement method for signature 'NMFstd,array'
.coef(object) <- value
## S4 replacement method for signature 'NMFstd,mMatrix'
.coef(object, slice = 1L) <- value
## S4 method for signature 'NMFstd'
fitted(object, W, H)
## S4 method for signature 'NMFstd'
ibterms(object)
## S4 method for signature 'NMFstd'
icterms(object)
|
object |
an object of class |
slice |
optional slice (3rd margin) to extract in 3D-array NMF models. |
value |
an object whose value is used to modify properties of the given object. |
W |
a optional matrix to use in the computation as the basis matrix in place of
|
H |
a optional matrix to use in the computation as the coefficient matrix in place of
|
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 and H are n \times r and r \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:
W
basis vector, metagenes, factors, source, image basis
H
mixture coefficients, metagene sample expression profiles, weights
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:
the columns of the target matrix V
the rows of the target matrix V
the first matrix factor W
the columns of first matrix factor W
the second matrix factor H
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.
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. See bterms
.
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. See cterms
.
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.
.basis:
.basis(object = NMFstd)
: Get the basis matrix in standard NMF models
This function returns slot W
of object
.
.basis<-:
.basis<-(object = NMFstd,value = array)
: Set the basis matrix in standard NMF models
This function sets slot W
of object
.
.basis<-(object = NMFstd,value = mMatrix)
: Replaces a slice of the basis array.
.coef:
.coef(object = NMFstd)
: Get the mixture coefficient matrix in standard NMF models, which
is stored in slot H
of object
.
.coef<-:
.coef<-(object = NMFstd,value = array)
: Set the mixture coefficient matrix in standard NMF models
This function sets slot H
of object
.
.coef<-(object = NMFstd,value = mMatrix)
: Replaces a slice of the coefficent array.
bterms<-:
bterms<-(object = NMFstd)
: Default method tries to coerce value
into a data.frame
with
as.data.frame
.
cterms<-:
cterms<-(object = NMFstd)
: Default method tries to coerce value
into a data.frame
with
as.data.frame
.
fitted:
fitted(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
and H
:
V ~ W H
ibterms:
ibterms(object = NMFstd)
: Method for standard NMF models, which returns the integer vector that is
stored in slot ibterms
when a formula-based NMF model is instantiated.
icterms:
icterms(object = NMFstd)
: Method for standard NMF models, which returns the integer vector that is
stored in slot icterms
when a formula-based NMF model is instantiated.
t:
t(NMFstd)
: transposes an NMF standard model object, including fixed terms.
Lee DD, 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\#0>.
Other NMF-model:
NMFOffset-class
,
NMFns-class
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | # 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)
# create a NMF array object based on random (compatible) arrays
# extra dimension (levels)
q <- 2
w <- array(seq(n*r*q), dim = c(n, r, q))
h <- rmatrix(r, p)
nmfModel(W = w, H = h)
# random standard NMF model
x <- rnmf(3, 10, 5)
basis(x)
coef(x)
# set matrix factors
basis(x) <- matrix(1, nrow(x), nbasis(x))
coef(x) <- matrix(1, nbasis(x), ncol(x))
# set random factors
basis(x) <- rmatrix(basis(x))
coef(x) <- rmatrix(coef(x))
# incompatible matrices generate an error:
try( coef(x) <- matrix(1, nbasis(x)-1, nrow(x)) )
# but the low-level method allow it
.coef(x) <- matrix(1, nbasis(x)-1, nrow(x))
try( validObject(x) )
# random standard NMF model
x <- rnmf(3, 10, 5)
all.equal(fitted(x), basis(x) %*% coef(x))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.