Lenskit

Latest version: v0.14.4

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

Scan your dependencies

Page 4 of 4

0.8.1

This is the same as 0.8.0, with a couple of small build environment tweaks to properly deploy the release.

0.8.0

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

Infrastructure Updates

- Dropped support for Python 3.5
- Removed `*args` from `Algorithm.fit`, so additional data must be provided via keyword arguments
- Made `Algorithm.fit` implementations consistently take `**kwargs` for hybrid flexibility

Algorithm Updates

- Substantial performance and stability improvements to item-item
- Added a coordinate descent solver to explicit-feedback ALS and made it the default. The old
LU-based solver is still available with `method='lu'`.
- Added a conjugate gradient solver to implicit-feedback ALS and made it the default.
- Added a random recommender

0.7.0

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

- Use [Joblib][] for parallelism in batch routines.
- `nprocs` arguments are renamed to `n_jobs` for consistency with Joblib.
- Removed `parallel` option on `MultiEval` algorithms, as it was unused.
- Made `MultiEval` default to using each recommender's default candidate
set, and adapt algorithms to recommenders prior to evaluation.
- Make `MultiEval` require named arguments for most things.
- Add support to `MultiEval` to save the fit models.
- `RecListAnalysis` can optionally ensure all test users are returned, even
if they lack recommendation lists.
- Performance improvements to algorithms and evaluation.

[Joblib]: https://joblib.readthedocs.io

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 4 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.