These update rules proposed by Badea (2008) are modified version of the updates from Lee et al. (2001), that include an offset/intercept vector, which models a common baseline for each feature accross all samples:
V \approx W H + I
nmf_update.euclidean_offset.h
andnmf_update.euclidean_offset.w
compute the updated NMFOffset model, using the optimized C++ implementations.
nmf_update.offset_R
implements a complete single update step, using plain R updates.
nmf_update.offset
implements a complete single update step, using C++-optimised updates.Algorithms offset and .R#offset provide the complete NMF-with-offset algorithm from Badea (2008), using the C++-optimised and pure R updates
nmf_update.offset
andnmf_update.offset_R
respectively.
nmf_update.euclidean_offset.h(v, w, h, offset, eps = 10^-9, copy = TRUE) nmf_update.euclidean_offset.w(v, w, h, offset, eps = 10^-9, copy = TRUE) nmf_update.offset_R(i, v, x, eps = 10^-9, ...) nmf_update.offset(i, v, x, copy = FALSE, eps = 10^-9, ...) nmfAlgorithm.offset_R(..., .stop = NULL, maxIter = nmf.getOption("maxIter") %||% 2000, eps = 10^-9, stopconv = 40, check.interval = 10) nmfAlgorithm.offset(..., .stop = NULL, maxIter = nmf.getOption("maxIter") %||% 2000, copy = FALSE, eps = 10^-9, stopconv = 40, check.interval = 10)
FALSE
) or on a copy (TRUE
- default).
With copy=FALSE
the memory footprint is very small, and some speed-up may be
achieved in the case of big matrices.
However, greater care should be taken due the side effect.
We recommend that only experienced users use copy=TRUE
.NMF-class
object.onInit
and
Stop
respectively).maxIter
.
nmf.stop.stationary
;
(object="NMFStrategy", i="integer", y="matrix", x="NMF", ...)
,
where object
is the NMFStrategy
object that describes the algorithm being run,
i
is the current iteration, y
is the target matrix and x
is the current value of
the NMF model.
an NMFOffset-class
model object.
The associated model is defined as an NMFOffset-class
object.
The details of the multiplicative updates can be found in Badea (2008).
Note that the updates are the ones defined for a single datasets, not the
simultaneous NMF model, which is fit by algorithm siNMF from
formula-based NMF models.
Badea L (2008). "Extracting gene expression profiles common to colon and pancreatic adenocarcinoma using simultaneous
nonnegative matrix factorization." _Pacific Symposium on Biocomputing. Pacific Symposium on Biocomputing_, *290*, pp. 267-78.
ISSN 1793-5091,
Lee DD and Seung H (2001). "Algorithms for non-negative matrix factorization." _Advances in neural information processing
systems_.