Release notes for LensKit 0.9
The Git changelog and the list of closed tickets and pull requests provide more information on what has happened, including bugs that have been fixed.
-
Clean up documentation, warnings, and documenting annotations in several places. Also made many style fixes.
-
Fix the
ItemScorerinheritance hierarchy by makingAbstractItemScorerimplementItemScorerrather thanRatingPredictor, and make subclasses implementRatingPredictordirectly. -
Revise
SparseVectordefinition and implementations to have a well-defined notion of “key domain” and “key set”, where the key set is the set of keys with values drawn from the key domain. This allowsMutableSparseVectors to be used to build up vectors in a well-defined fashion without using NaN. With this update, thekeySetmethod will only return defined keys (usekeyDomainto access the key domain), and NaN will only show up due to mathematical error, never due to temporary slots being unfilled. -
Updated versions of several dependencies.
-
EventCollectionDAOfactory updates - addwrapmethods that wrap other DAO factories in immediate or soft event collection DAO factories, making it easier to useEventCollectionDAOfor a cache of disk-backed DAOs. Also made theSoftFactorytake aSupplierrather thanProvider.
Evaluation runner
-
Output separate data set and segment number fields.
-
Support fractional (e.g. 20%) holdouts in addition to remove-K.
-
Reinstate per-user MAE (MAE.ByUser).
-
Use
.eval-cacheas default cache directory. -
Add evaluation listener framework for future evaluation monitor consoles.
-
Renamed profile for running the evaluation demo - it is now activated with
demo(rather thansmoketest). -
Rearrange evaluator code to the crossfolding logic is in its own package.
Cleanup
Several unused classes have been removed:
-
IndexedItemScore -
IntSortedArraySet