lenskit.sklearn.nmf#

Nonnegative matrix factorization for implicit feedback.

This module contains a non-negative factorization implicit-feedback scorer built on sklearn.decomposition.non_negative_factorization().

Classes

NMFConfig(*[, beta_loss, max_iter, ...])

Configuration for NMFScorer.

NMFScorer([config])

Non-negative matrix factorization for implicit feedback using SciKit-Learn's sklearn.decomposition.non_negative_factorization().

class lenskit.sklearn.nmf.NMFConfig(*, beta_loss='frobenius', max_iter=200, n_components=None, alpha_W=0.0, alpha_H='same', l1_ratio=0.0)#

Bases: BaseModel

Configuration for NMFScorer. See the documentation for sklearn.decomposition.non_negative_factorization() for the configuration options.

Parameters:
  • beta_loss (Literal['frobenius', 'kullback-leibler', 'itakura-saito'])

  • max_iter (int)

  • n_components (int | None)

  • alpha_W (float)

  • alpha_H (float | Literal['same'])

  • l1_ratio (float)

model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class lenskit.sklearn.nmf.NMFScorer(config=None, **kwargs)#

Bases: Component[ItemList, …], Trainable

Non-negative matrix factorization for implicit feedback using SciKit-Learn’s sklearn.decomposition.non_negative_factorization(). It computes the user and item embedding matrices using an indicator matrix as the input.

Stability:
Caller (see Stability Levels).
Parameters:
train(data, options=TrainingOptions(retrain=True, device=None, rng=None))#

Train the model to learn its parameters from a training dataset.

Parameters: