
Last chance! 50% off unlimited learning
Sale ends in
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:
nmf_update.euclidean_offset.h
and
nmf_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
and
nmf_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)
current value of the offset/intercept vector. It must be of length equal to the number of rows in the target matrix.
target matrix.
small numeric value used to ensure numeric stability, by shifting up entries from zero to this fixed value.
logical that indicates if the update should
be made on the original matrix directly (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
.
current iteration number.
extra arguments. These are generally not used
and present only to allow other arguments from the main
call to be passed to the initialisation and stopping
criterion functions (slots onInit
and Stop
respectively).
specification of a stopping criterion, that is used instead of the one associated to the NMF algorithm. It may be specified as:
the access key of a registered stopping criterion;
a
single integer that specifies the exact number of
iterations to perform, which will be honoured unless a
lower value is explicitly passed in argument
maxIter
.
a single numeric value that
specifies the stationnarity threshold for the objective
function, used in with nmf.stop.stationary
;
a function with signature
(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.
maximum number of iterations to perform.
number of iterations intervals over which the connectivity matrix must not change for stationarity to be achieved.
interval (in number of iterations) on which the stopping criterion is computed.
current basis matrix
current coefficient matrix
The associated model is defined as an
'>NMFOffset
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, <URL: http://www.ncbi.nlm.nih.gov/pubmed/18229692>.
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\#0>.