offset-nmf: NMF Multiplicative Update for NMF with Offset Models

nmf_update.euclidean_offset.hR Documentation

NMF Multiplicative Update for NMF with Offset Models

Description

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.

Usage

  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)

Arguments

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 (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.

i

current iteration number.

x

current NMF model, as an NMF object.

...

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).

.stop

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.

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

Details

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.

Value

an NMFOffset model object.

Author(s)

Original update definition: Liviu Badea

Port to R and optimisation in C++: Renaud Gaujoux

References

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>.


NMF documentation built on March 31, 2023, 6:55 p.m.