NMF (version 0.21.0)

NMFStrategyIterative-class: Interface for Algorithms: Implementation for Iterative NMF Algorithms

Description

This class provides a specific implementation for the generic function run -- concretising the virtual interface class '>NMFStrategy, for NMF algorithms that conform to the following iterative schema (starred numbers indicate mandatory steps):

  • 1. Initialisation

  • 2*. Update the model at each iteration

  • 3. Stop if some criterion is satisfied

  • 4. Wrap up

This schema could possibly apply to all NMF algorithms, since these are essentially optimisation algorithms, almost all of which use iterative methods to approximate a solution of the optimisation problem. The main advantage is that it allows to implement updates and stopping criterion separately, and combine them in different ways. In particular, many NMF algorithms are based on multiplicative updates, following the approach from Lee et al. (2001), which are specially suitable to be cast into this simple schema.

Arguments

Slots

onInit

optional function that performs some initialisation or pre-processing on the model, before starting the iteration loop.

Update

mandatory function that implement the update step, which computes new values for the model, based on its previous value. It is called at each iteration, until the stopping criterion is met or the maximum number of iteration is achieved.

Stop

optional function that implements the stopping criterion. It is called before each Update step. If not provided, the iterations are stopped after a fixed number of updates.

onReturn

optional function that wraps up the result into an NMF object. It is called just before returning the

Methods

run

signature(object = "NMFStrategyIterative", y = "matrix", x = "NMFfit"): Runs an NMF iterative algorithm on a target matrix y.

show

signature(object = "NMFStrategyIterative"): Show method for objects of class NMFStrategyIterative

References

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