Skip to contents

[MsNmf] is the concrete [MsEngine] spec for non-negative matrix factorization extraction (U-M1s-12). Build one with [ms_nmf()]; the hyper-parameters are frozen on the spec object and the object is the first-class `method` citizen of [ms_extract()]. The Rust kernel runs one seeded fit (canonical zero stream): results are deterministic and thread-invariant. Violations raise `msuiter_error_engine`.

Usage

MsNmf(
  name = "nmf",
  mode = "extract",
  params = list(),
  deterministic = TRUE,
  packages = character(0),
  label = "NMF multiplicative updates",
  variant = "kl",
  max_iter = 500,
  seed = 1
)

Arguments

name

single lower-case snake_case engine name; the MsNmf class fixes it to `"nmf"` (the registry key).

mode

spec mode; the MsNmf class fixes it to `"extract"`.

params

named list of hyper-parameters (empty: the NMF hyper-parameters live in the dedicated `variant`/`max_iter`/`seed` properties below, mirroring the atomic property defaults of [MsEngine]).

deterministic

always TRUE: the kernel is seeded and thread-invariant (A7).

packages

character vector of required R packages; the msuiter kernel needs none.

label

human-readable engine label.

variant

single string, one of `"kl"` (generalized KL divergence, the D6 default: the multiplicative updates are the Poisson MLE of the multinomial catalog model) or `"eu"` (squared Frobenius).

max_iter

single positive whole number of multiplicative-update iterations (no early stopping: a run is a pure function of its inputs).

seed

single whole number in `[0, 2^31 - 1]` seeding the in-house PCG64 stream of the initializer.