Lenskit

Latest version: v0.14.4

Safety actively analyzes 702684 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 6

0.6.1

See the [GitHub milestone](https://github.com/lenskit/lkpy/milestone/4) for full change list.

- Fix inconsistency in both code and docs for recommend list sizes for top-*N* evaluation.
- Fix user-user to correctly use `sum` aggregate.
- Improve performance and documentation

0.6.0

Higlights:

- The `save` and `load` methods on algorithms have been removed. Just pickle fitted models to save
their data. This is what SciKit does, we see no need to deviate.
- The APIs and model structures for top-*N* recommendation is reworked to enable algorithms to
produce recommendations more automatically. The `Recommender` interfaces now take a `CandidateSelector`
to determine default candidates, so client code does not need to compute candidates on their own.
One effect of this is that the `batch.recommend` function no longer requires a candidate selector,
and there can be problems if you call `Recommender.adapt` before fitting a model.
- Top-*N* evaluation has been completely revamped to make it easier to correctly implement and run
evaluation metrics. Batch recommend no longer attaches ratings to recommendations. See
[Top-N evaluation](evaluation/topn-metrics.html) for details.
- Batch recommend & predict functions now take `nprocs` as a keyword-only argument.
- Several bug fixes and testing improvements.

See the [GitHub milestone](https://github.com/lenskit/lkpy/milestone/1) for issues and pull requests.

Internal Changes

These changes should not affect you if you are only consuming LensKit's algorithm and evaluation capabilities.

- Rewrite the `CSR` class to be more ergonomic from Python, at the expense of making the NumPy jitclass
indirect. It is available in the `.N` attribute. Big improvement: it is now picklable.

0.5.0

our previous custom patterns. Highlights of this change:

- Algorithms are trained in-place — we no longer have distinct model objects.
- Model data is stored as attributes on the algorithm object that end in `_`.
- Instead of writing `model = algo.train_model(ratings)`, call `algo.fit(ratings)`.

We also have some new capabilities:

- Ben Frederickson's Implicit library

As always, install with

conda install -c lenskit lenskit

Page 6 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.