basis {NMF} | R Documentation |
Accessing NMF Factors
Description
basis
and basis<-
are S4 generic functions
which respectively extract and set the matrix of basis
components of an NMF model (i.e. the first matrix
factor).
The methods .basis
, .coef
and their
replacement versions are implemented as pure virtual
methods for the interface class NMF
, meaning that
concrete NMF models must provide a definition for their
corresponding class (i.e. sub-classes of class
NMF
). See NMF
for more
details.
coef
and coef<-
respectively extract and
set the coefficient matrix of an NMF model (i.e. the
second matrix factor). For example, in the case of the
standard NMF model V \equiv WH
, the method
coef
will return the matrix H
.
.coef
and .coef<-
are low-level S4 generics
that simply return/set coefficient data in an object,
leaving some common processing to be performed in
coef
and coef<-
.
Methods coefficients
and coefficients<-
are
simple aliases for methods coef
and coef<-
respectively.
scoef
is similar to coef
, but returns the
mixture coefficient matrix of an NMF model, with the
columns scaled so that they sum up to a given value (1 by
default).
Usage
basis(object, ...)
## S4 method for signature 'NMF'
basis(object, all = TRUE, ...)
.basis(object, ...)
basis(object, ...)<-value
## S4 replacement method for signature 'NMF'
basis(object, use.dimnames = TRUE,
...)<-value
.basis(object)<-value
## S4 method for signature 'NMF'
loadings(x)
coef(object, ...)
## S4 method for signature 'NMF'
coef(object, all = TRUE, ...)
.coef(object, ...)
coef(object, ...)<-value
## S4 replacement method for signature 'NMF'
coef(object, use.dimnames = TRUE,
...)<-value
.coef(object)<-value
coefficients(object, ...)
## S4 method for signature 'NMF'
coefficients(object, all = TRUE, ...)
scoef(object, ...)
## S4 method for signature 'NMF'
scoef(object, scale = 1)
## S4 method for signature 'matrix'
scoef(object, scale = 1)
Arguments
object |
an object from which to extract the factor
matrices, typically an object of class
|
... |
extra arguments to allow extension and passed
to the low-level access functions Note that these throw an error if used in replacement functions . |
all |
a logical that indicates whether the complete
matrix factor should be returned ( |
use.dimnames |
logical that indicates if the object's dim names should be set using those from the new value, or left unchanged – after truncating them to fit new dimensions if necessary. This is useful to only set the entries of a factor. |
value |
replacement value |
scale |
scaling factor, which indicates to the value the columns of the coefficient matrix should sum up to. |
x |
an object of class |
Details
For example, in the case of the standard NMF model V
\equiv W H
, the method basis
will return
the matrix W
.
basis
and basis<-
are defined for the top
virtual class NMF
only, and rely
internally on the low-level S4 generics .basis
and
.basis<-
respectively that effectively extract/set
the coefficient data. These data are post/pre-processed,
e.g., to extract/set only their non-fixed terms or check
dimension compatibility.
coef
and coef<-
are S4 methods defined for
the corresponding generic functions from package
stats
(See coef). Similarly to
basis
and basis<-
, they are defined for the
top virtual class NMF
only, and rely
internally on the S4 generics .coef
and
.coef<-
respectively that effectively extract/set
the coefficient data. These data are post/pre-processed,
e.g., to extract/set only their non-fixed terms or check
dimension compatibility.
Methods
- basis
signature(object = "ANY")
: Default method returns the value of S3 slot or attribute'basis'
. It returnsNULL
if none of these are set.Arguments
...
are not used by this method.- basis
signature(object = "NMFfitXn")
: Returns the basis matrix of the best fit amongst all the fits stored inobject
. It is a shortcut forbasis(fit(object))
.- .basis
signature(object = "NMF")
: Pure virtual method for objects of classNMF
, that should be overloaded by sub-classes, and throws an error if called.- .basis
signature(object = "NMFstd")
: Get the basis matrix in standard NMF modelsThis function returns slot
W
ofobject
.- .basis
signature(object = "NMFfit")
: Returns the basis matrix from an NMF model fitted with functionnmf
.It is a shortcut for
.basis(fit(object), ...)
, dispatching the call to the.basis
method of the actual NMF model.- .basis<-
signature(object = "NMF", value = "matrix")
: Pure virtual method for objects of classNMF
, that should be overloaded by sub-classes, and throws an error if called.- .basis<-
signature(object = "NMFstd", value = "matrix")
: Set the basis matrix in standard NMF modelsThis function sets slot
W
ofobject
.- .basis<-
signature(object = "NMFfit", value = "matrix")
: Sets the the basis matrix of an NMF model fitted with functionnmf
.It is a shortcut for
.basis(fit(object)) <- value
, dispatching the call to the.basis<-
method of the actual NMF model. It is not meant to be used by the user, except when developing NMF algorithms, to update the basis matrix of the seed object before returning it.- basis<-
signature(object = "NMF")
: Default methods that calls.basis<-
and check the validity of the updated object.- coef
signature(object = "NMFfitXn")
: Returns the coefficient matrix of the best fit amongst all the fits stored inobject
. It is a shortcut forcoef(fit(object))
.- .coef
signature(object = "NMF")
: Pure virtual method for objects of classNMF
, that should be overloaded by sub-classes, and throws an error if called.- .coef
signature(object = "NMFstd")
: Get the mixture coefficient matrix in standard NMF modelsThis function returns slot
H
ofobject
.- .coef
signature(object = "NMFfit")
: Returns the the coefficient matrix from an NMF model fitted with functionnmf
.It is a shortcut for
.coef(fit(object), ...)
, dispatching the call to the.coef
method of the actual NMF model.- .coef<-
signature(object = "NMF", value = "matrix")
: Pure virtual method for objects of classNMF
, that should be overloaded by sub-classes, and throws an error if called.- .coef<-
signature(object = "NMFstd", value = "matrix")
: Set the mixture coefficient matrix in standard NMF modelsThis function sets slot
H
ofobject
.- .coef<-
signature(object = "NMFfit", value = "matrix")
: Sets the the coefficient matrix of an NMF model fitted with functionnmf
.It is a shortcut for
.coef(fit(object)) <- value
, dispatching the call to the.coef<-
method of the actual NMF model. It is not meant to be used by the user, except when developing NMF algorithms, to update the coefficient matrix in the seed object before returning it.- coef<-
signature(object = "NMF")
: Default methods that calls.coef<-
and check the validity of the updated object.- coefficients
signature(object = "NMF")
: Alias tocoef,NMF
, therefore also pure virtual.- loadings
signature(x = "NMF")
: Method loadings for NMF ModelsThe method
loadings
is identical tobasis
, but do not accept any extra argument.The method
loadings
is provided to standardise the NMF interface against the one defined in thestats
package, and emphasises the similarities between NMF and PCA or factorial analysis (seeloadings
).
See Also
Other NMF-interface:
.DollarNames,NMF-method
,
misc
, NMF-class
,
$<-,NMF-method
, $,NMF-method
,
nmfModel
, nmfModels
,
rnmf
Examples
#----------
# scoef
#----------
# Scaled coefficient matrix
x <- rnmf(3, 10, 5)
scoef(x)
scoef(x, 100)
#----------
# .basis,NMFstd-method
#----------
# 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) )