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(*[, embedding_size, beta_loss, ...])

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(*, embedding_size=None, beta_loss='frobenius', max_iter=200, alpha_W=0.0, alpha_H='same', l1_ratio=0.0)#

Bases: EmbeddingSizeMixin, BaseModel

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

Parameters:
embedding_size: PositiveInt | None#

The dimension of user and item embeddings (number of latent features to learn).

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: