NMF Multiplicative Update for NMF with Offset Models
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
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)
offset |
current value of the offset/intercept vector. It must be of length equal to the number of rows in the target matrix. |
v |
target matrix. |
eps |
small numeric value used to ensure numeric stability, by shifting up entries from zero to this fixed value. |
copy |
logical that indicates if the update should
be made on the original matrix directly ( |
i |
current iteration number. |
x |
current NMF model, as an
|
... |
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 |
.stop |
specification of a stopping criterion, that is used instead of the one associated to the NMF algorithm. It may be specified as:
|
maxIter |
maximum number of iterations to perform. |
stopconv |
number of iterations intervals over which the connectivity matrix must not change for stationarity to be achieved. |
check.interval |
interval (in number of iterations) on which the stopping criterion is computed. |
w |
current basis matrix |
h |
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.
an NMFOffset
model object.
Original update definition: Liviu Badea
Port to R and optimisation in C++: Renaud Gaujoux
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>.
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.