Interface for NMF Seeding Methods


The function seed provides a single interface for calling all seeding methods used to initialise NMF computations. These methods at least set the basis and coefficient matrices of the initial object to valid nonnegative matrices. They will be used as a starting point by any NMF algorithm that accept initialisation.

IMPORTANT: this interface is still considered experimental and is subject to changes in future release.


seed(x, model, method, ...)

S4 (matrix,NMF,NMFSeed)
`seed`(x, model, method, rng, ...)

S4 (ANY,ANY,function)
`seed`(x, model, method, name, ...)


target matrix one wants to approximate with NMF
specification of the NMF model, e.g., the factorization rank.
specification of a seeding method. See each method for details on the supported formats.
extra to allow extensions and passed down to the actual seeding method.
rng setting to use. If not missing the RNG settings are set and restored on exit using setRNG. All arguments in ... are passed to teh seeding strategy.
optional name of the seeding method for custom seeding strategies.


an NMFfit-class object.


  1. seedsignature(x = "matrix", model = "NMF", method = "NMFSeed"): This is the workhorse method that seeds an NMF model object using a given seeding strategy defined by an NMFSeed object, to fit a given target matrix.

  2. seedsignature(x = "ANY", model = "ANY", method = "function"): Seeds an NMF model using a custom seeding strategy, defined by a function.

    method must have signature (x='NMFfit', y='matrix', ...), where x is the unseeded NMF model and y is the target matrix to fit. It must return an NMF-class object, that contains the seeded NMF model.

  3. seedsignature(x = "ANY", model = "ANY", method = "missing"): Seeds the model with the default seeding method given by nmf.getOption('default.seed')

  4. seedsignature(x = "ANY", model = "ANY", method = "NULL"): Use NMF method 'none'.

  5. seedsignature(x = "ANY", model = "ANY", method = "numeric"): Use method to set the RNG with setRNG and use method “random” to seed the NMF model.

    Note that in this case the RNG settings are not restored. This is due to some internal technical reasons, and might change in future releases.

  6. seedsignature(x = "ANY", model = "ANY", method = "character"): Use the registered seeding method whose access key is method.

  7. seedsignature(x = "ANY", model = "list", method = "NMFSeed"): Seed a model using the elements in model to instantiate it with nmfModel.

  8. seedsignature(x = "ANY", model = "numeric", method = "NMFSeed"): Seeds a standard NMF model (i.e. of class NMFstd-class) of rank model.