-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Description
Hello!
I encountered an issue while evaluating the BPR (Bayesian Personalized Ranking) model with basically the same code provided in the example on a different dataset. Specifically, when using the "by_threshold" relevancy method with ranking metrics, the computed values for precision@k, ndcg@k, and map@k exceed 1, which seems incorrect. This issue does not occur when switching the relevancy method to "top_k."
How do we replicate the issue?
I use the following parameter for BPR (all using the default seed):
bpr = cornac.models.BPR(
k=200,
max_iter=100,
learning_rate=0.01,
lambda_reg=0.001,
verbose=True
)
Using these evaluation
TOP_K = 10
threshold =50
eval_map = map_at_k(test, all_predictions, col_prediction="prediction",
relevancy_method='by_threshold', threshold=threshold, k=TOP_K)
eval_ndcg = ndcg_at_k(test, all_predictions, col_prediction="prediction",
relevancy_method='by_threshold', threshold=threshold, k=TOP_K)
eval_precision = precision_at_k(
test, all_predictions, col_prediction="prediction",
relevancy_method='by_threshold', threshold=threshold, k=TOP_K)
Here is the dataset I test on: https://github.com/mnhqut/rec_sys-dataset/blob/main/data.csv
My result:
MAP: 1.417529
NDCG: 1.359902
Precision@K: 2.256466
Willingness to contribute
- Yes, I can contribute for this issue independently.
- [x ] Yes, I can contribute for this issue with guidance from Recommenders community.
- No, I cannot contribute at this time.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working