NMF (version 0.23.0)

NMFStrategy: Factory Method for NMFStrategy Objects

Description

Creates NMFStrategy objects that wraps implementation of NMF algorithms into a unified interface.

Usage

NMFStrategy(name, method, ...)

# S4 method for NMFStrategy,matrix,NMFfit run(object, y, x, ...)

# S4 method for NMFStrategy,matrix,NMF run(object, y, x, ...)

# S4 method for NMFStrategyFunction,matrix,NMFfit run(object, y, x, ...)

# S4 method for NMFStrategyIterative,matrix,NMFfit run(object, y, x, .stop = NULL, maxIter = nmf.getOption("maxIter") %||% 2000, ...)

# S4 method for NMFStrategyIterativeX,matrix,NMFfit run(object, y, x, maxIter, ...)

# S4 method for NMFStrategyOctave,matrix,NMFfit run(object, y, x, ...)

Arguments

name

name/key of an NMF algorithm.

method

definition of the algorithm

...

extra arguments passed to new.

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

object

an object computed using some algorithm, or that describes an algorithm itself.

y

data object, e.g. a target matrix

x

a model object used as a starting point by the algorithm, e.g. a non-empty NMF model.

Methods

NMFStrategy

signature(name = "character", method = "function"): Creates an NMFStrategyFunction object that wraps the function method into a unified interface.

method must be a function with signature (y="matrix", x="NMFfit", ...), and return an object of class '>NMFfit.

NMFStrategy

signature(name = "character", method = "NMFStrategy"): Creates an NMFStrategy object based on a template object (Constructor-Copy).

NMFStrategy

signature(name = "NMFStrategy", method = "missing"): Creates an NMFStrategy based on a template object (Constructor-Copy), in particular it uses the same name.

NMFStrategy

signature(name = "missing", method = "character"): Creates an NMFStrategy based on a registered NMF algorithm that is used as a template (Constructor-Copy), in particular it uses the same name.

It is a shortcut for NMFStrategy(nmfAlgorithm(method, exact=TRUE), ...).

NMFStrategy

signature(name = "NULL", method = "NMFStrategy"): Creates an NMFStrategy based on a template object (Constructor-Copy) but using a randomly generated name.

NMFStrategy

signature(name = "character", method = "character"): Creates an NMFStrategy based on a registered NMF algorithm that is used as a template.

NMFStrategy

signature(name = "NULL", method = "character"): Creates an NMFStrategy based on a registered NMF algorithm (Constructor-Copy) using a randomly generated name.

It is a shortcut for NMFStrategy(NULL, nmfAlgorithm(method), ...).

NMFStrategy

signature(name = "character", method = "missing"): Creates an NMFStrategy, determining its type from the extra arguments passed in ...: if there is an argument named Update then an NMFStrategyIterative is created, or if there is an argument named algorithm then an NMFStrategyFunction is created. Calls other than these generates an error.

run

signature(object = "NMFStrategy", y = "matrix", x = "NMFfit"): Pure virtual method defined for all NMF algorithms to ensure that a method run is defined by sub-classes of NMFStrategy.

It throws an error if called directly.

run

signature(object = "NMFStrategy", y = "matrix", x = "NMF"): Method to run an NMF algorithm directly starting from a given NMF model.

run

signature(object = "NMFStrategyFunction", y = "matrix", x = "NMFfit"): Runs the NMF algorithms implemented by the single R function -- and stored in slot 'algorithm' of object, on the data object y, using x as starting point. It is equivalent to calling object@algorithm(y, x, ...).

This method is usually not called directly, but only via the function nmf, which takes care of many other details such as seeding the computation, handling RNG settings, or setting up parallelisation.

run

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

run

signature(object = "NMFStrategyOctave", y = "matrix", x = "NMFfit"): Runs the NMF algorithms implemented by the Octave/Matlab function associated with the strategy -- and stored in slot 'algorithm' of object.

This method is usually not called directly, but only via the function nmf, which takes care of many other details such as seeding the computation, handling RNG settings, or setting up parallel computations.