Intersection
- class rectools.metrics.intersection.Intersection(k: int, ref_k: Optional[int] = None)[source]
Bases:
MetricAtKMetric to measure intersection in user-item pairs between recommendation lists.
The intersection@k equals the share of
recothat is present inref_reco.- This corresponds to the following algorithm:
filter
recobykfilter
ref_recobyref_kcalculate the proportion of items in
recothat are also present inref_reco
- The second and third steps are equivalent to computing Recall@ref_k when:
Interactions consists of
recowithout the Columns.Rank column.Recommendation table is
ref_reco
- Parameters
k (int) – Number of items in top of recommendations list that will be used to calculate metric.
ref_k (int, optional) – Number of items in top of reference recommendations list that will be used to calculate metric. If
ref_kis None thanref_recowill be filtered withref_k = k. Default: None.
- Inherited-members
Methods
calc(reco, ref_reco)Calculate metric value.
calc_per_user(reco, ref_reco)Calculate metric values for all users.
Attributes
ref_k- calc(reco: DataFrame, ref_reco: DataFrame) float[source]
Calculate metric value.
- Parameters
reco (pd.DataFrame) – Recommendations table with columns Columns.User, Columns.Item, Columns.Rank.
ref_reco (pd.DataFrame) – Reference recommendations table with columns Columns.User, Columns.Item, Columns.Rank.
- Returns
Value of metric (average between users).
- Return type
float
- calc_per_user(reco: DataFrame, ref_reco: DataFrame) Series[source]
Calculate metric values for all users.
- Parameters
reco (pd.DataFrame) – Recommendations table with columns Columns.User, Columns.Item, Columns.Rank.
ref_reco (pd.DataFrame) – Reference recommendations table with columns Columns.User, Columns.Item, Columns.Rank.
- Returns
Values of metric (index - user id, values - metric value for every user).
- Return type
pd.Series