Comments (4)
Thanks for the clarification, I now understand the utility of the current implementation and agree that 1 is not a bug.
from lkpy.
#310 fixes this for a LensKit 0.14.1 bug-fix release. Will cherry-pick that fix onto the main branch and then close the bug.
from lkpy.
2 definitely looks like a bug. Will work on a fix.
Regarding 1: when k
is not specified, this is actually a difficult scenario, and it is not clear what the correct behavior is, because it is not clear how many results the system was supposed to return. LensKit's current behavior assumes that the target list length is effectively unbounded (or at least as long as the truth frame), and thus a truncated list represents an inability to recommend further items. Another option is to assume that the list is as long as was requested, and truncate the truth; this is a quite strong assumption, and it means a recommender can obtain a higher NDCG score simply by not recommending more items.
Disambiguating this case is why k
was introduced, and evaluations should generally always specify k
(should make that clearer in the documentation, perhaps). From the data frame alone, the metric does not have enough information to determine a target length. Do you have any references to what assumptions are made by other implementations or authors when result lists are too short? Happy to discuss this further and be persuaded that this is a bug, but right now it looks like differing expected assumptions for an edge case.
from lkpy.
@spawliko thanks! I should be able to have a fix for 2 in testing later today.
from lkpy.
Related Issues (20)
- lenskit-implicit install doesn't work HOT 2
- Add popularity metrics
- Add intra-list similarity diversity metric
- Add topical how-to guides to the manual
- Update to support Numba 0.56
- Backport build updates to 0.14 branch HOT 1
- Allow rng specification when partitions is None in crossfold.sample_rows HOT 1
- Best set up for MovieLens1M
- Drop Python before 3.10
- Replace Numba with Python + Cython HOT 1
- Small bug while importing `TopN`
- Migrate LensKit to P2C
- Migrate LensKit to setuptools HOT 2
- Reformat LensKit with Ruff
- Drop legacy compat shims for SeedBank HOT 1
- Add explicit user-item matrix class
- Support reading ML datasets directly from zip
- Support reading rating data from DuckDB
- Support time-bounded popularity
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lkpy.