Creates NMFStrategy objects that wraps implementation of NMF algorithms into a unified interface.
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, ...)
name/key of an NMF algorithm.
definition of the algorithm
extra arguments passed to new
.
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.
an object computed using some algorithm, or that describes an algorithm itself.
data object, e.g. a target matrix
a model object used as a starting point by the algorithm, e.g. a non-empty NMF model.
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
.
signature(name = "character",
method = "NMFStrategy")
: Creates an NMFStrategy
object based on a template object (Constructor-Copy).
signature(name = "NMFStrategy",
method = "missing")
: Creates an NMFStrategy
based
on a template object (Constructor-Copy), in particular it
uses the same name.
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),
...)
.
signature(name = "NULL", method
= "NMFStrategy")
: Creates an NMFStrategy
based on
a template object (Constructor-Copy) but using a randomly
generated name.
signature(name = "character",
method = "character")
: Creates an NMFStrategy
based on a registered NMF algorithm that is used as a
template.
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), ...)
.
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.
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.
signature(object = "NMFStrategy", y =
"matrix", x = "NMF")
: Method to run an NMF algorithm
directly starting from a given NMF model.
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.
signature(object =
"NMFStrategyIterative", y = "matrix", x = "NMFfit")
:
Runs an NMF iterative algorithm on a target matrix
y
.
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.