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).
basis(object, ...) # S4 method for NMF
basis(object, all = TRUE, ...)
.basis(object, ...)
basis(object, ...)<-value
# S4 method for NMF
basis(object, use.dimnames = TRUE,
...)<-value
.basis(object)<-value
# S4 method for NMF
loadings(x)
coef(object, ...)
# S4 method for NMF
coef(object, all = TRUE, ...)
.coef(object, ...)
coef(object, ...)<-value
# S4 method for NMF
coef(object, use.dimnames = TRUE,
...)<-value
.coef(object)<-value
coefficients(object, ...)
# S4 method for NMF
coefficients(object, all = TRUE, ...)
scoef(object, ...)
# S4 method for NMF
scoef(object, scale = 1)
# S4 method for matrix
scoef(object, scale = 1)
an object from which to extract the factor
matrices, typically an object of class
NMF
.
extra arguments to allow extension and passed
to the low-level access functions .coef
and
.basis
.
Note that these throw an error if used in replacement
functions .
a logical that indicates whether the complete
matrix factor should be returned (TRUE
) or only
the non-fixed part. This is relevant only for
formula-based NMF models that include fixed basis or
coefficient terms.
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.
replacement value
scaling factor, which indicates to the value the columns of the coefficient matrix should sum up to.
an object of class "factanal"
or
"princomp"
or the loadings
component
of such an object.
signature(object = "ANY")
: Default
method returns the value of S3 slot or attribute
'basis'
. It returns NULL
if none of these
are set.
Arguments ...
are not used by this method.
signature(object = "NMFfitXn")
:
Returns the basis matrix of the best fit amongst all the
fits stored in object
. It is a shortcut for
basis(fit(object))
.
signature(object = "NMF")
: Pure
virtual method for objects of class
NMF
, that should be overloaded by
sub-classes, and throws an error if called.
signature(object = "NMFstd")
: Get
the basis matrix in standard NMF models
This function returns slot W
of object
.
signature(object = "NMFfit")
:
Returns the basis matrix from an NMF model fitted with
function nmf
.
It is a shortcut for .basis(fit(object), ...)
,
dispatching the call to the .basis
method of the
actual NMF model.
signature(object = "NMF", value =
"matrix")
: Pure virtual method for objects of class
NMF
, that should be overloaded by
sub-classes, and throws an error if called.
signature(object = "NMFstd", value
= "matrix")
: Set the basis matrix in standard NMF models
This function sets slot W
of object
.
signature(object = "NMFfit", value
= "matrix")
: Sets the the basis matrix of an NMF model
fitted with function nmf
.
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.
signature(object = "NMF")
: Default
methods that calls .basis<-
and check the validity
of the updated object.
signature(object = "NMFfitXn")
:
Returns the coefficient matrix of the best fit amongst
all the fits stored in object
. It is a shortcut
for coef(fit(object))
.
signature(object = "NMF")
: Pure
virtual method for objects of class
NMF
, that should be overloaded by
sub-classes, and throws an error if called.
signature(object = "NMFstd")
: Get the
mixture coefficient matrix in standard NMF models
This function returns slot H
of object
.
signature(object = "NMFfit")
: Returns
the the coefficient matrix from an NMF model fitted with
function nmf
.
It is a shortcut for .coef(fit(object), ...)
,
dispatching the call to the .coef
method of the
actual NMF model.
signature(object = "NMF", value =
"matrix")
: Pure virtual method for objects of class
NMF
, that should be overloaded by
sub-classes, and throws an error if called.
signature(object = "NMFstd", value =
"matrix")
: Set the mixture coefficient matrix in
standard NMF models
This function sets slot H
of object
.
signature(object = "NMFfit", value =
"matrix")
: Sets the the coefficient matrix of an NMF
model fitted with function nmf
.
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.
signature(object = "NMF")
: Default
methods that calls .coef<-
and check the validity
of the updated object.
signature(object = "NMF")
:
Alias to coef,NMF
, therefore also pure virtual.
signature(x = "NMF")
: Method
loadings for NMF Models
The method loadings
is identical to basis
,
but do not accept any extra argument.
The method loadings
is provided to standardise the
NMF interface against the one defined in the
stats
package, and emphasises the
similarities between NMF and PCA or factorial analysis
(see loadings
).
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.
Other NMF-interface:
.DollarNames,NMF-method
,
misc
, NMF-class
,
$<-,NMF-method
, $,NMF-method
,
nmfModel
, nmfModels
,
rnmf
# roxygen generated flag
options(R_CHECK_RUNNING_EXAMPLES_=TRUE)
#----------
# 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) )
Run the code above in your browser using DataLab