Source code for alpenglow.offline.evaluation.RecallScore
import math
import pandas as pd
import numpy as np
[docs]def RecallScore(test, recommendations, top_k):
joined = recommendations.join(test.set_index(['user','item']), on=['user','item'], how='inner')
hit_num = joined.groupby('user')['item'].count()
positives_num = test.groupby('user')['item'].nunique()
recalls = (hit_num/positives_num).fillna(0)
return recalls.mean()