recommenders-team/recommenders

[ASK] Question on ndcg_at_k calculation

Open

#1,962 opened on Jul 24, 2023

View on GitHub
 (0 comments) (0 reactions) (0 assignees)Python (2,972 forks)batch import
help wanted

Repository metrics

Stars
 (17,706 stars)
PR merge metrics
 (Avg merge 6d 16h) (10 merged PRs in 30d)

Description

Description

Why are we using rank ('first) to get the order of the ideal ranking instead of rank('min') or rank('average)?

https://github.com/microsoft/recommenders/blob/main/recommenders/evaluation/python_evaluation.py#L687 line 597 df_idcg["irank"] = df_idcg.groupby(col_user, as_index=False, sort=False)[ col_rating ].rank("first", ascending=False)

In this case, if there is a tied in the rating, for example, item A, B, C, D, rating is 1, 0, 0,0. Using rank('first), irank = 1,2,3,4. But should we take the tied condition into consideration, that means the irank = 1,2,2,2?

Other Comments

Contributor guide