CoveredUsers
- class rectools.metrics.dq.CoveredUsers(k: int)[source]
Bases:
MetricAtKRecommendations data quality metric to calculate share of users from test interactions that are present in recommendations table and have at least one recommendation at first k positions.
- Parameters
k (int) – Number of items at the top of recommendations list that will be used to calculate metric.
Examples
>>> reco = pd.DataFrame( ... { ... Columns.User: [1, 1, 2], ... Columns.Item: [1, 2, 1], ... Columns.Rank: [1, 2, 2], ... } ... ) >>> interactions = pd.DataFrame( ... { ... Columns.User: [1, 2, 3, 4], ... Columns.Item: [1, 1, 1, 1], ... } ... ) >>> CoveredUsers(k=1).calc_per_user(reco, interactions).values array([1, 0, 0, 0]) >>> CoveredUsers(k=2).calc_per_user(reco, interactions).values array([1, 1, 0, 0])
- Inherited-members
- Parameters
k (int) –
Methods
calc(reco, interactions)Calculate metric value from merged recommendations.
calc_per_user(reco, interactions)Calculate metric values for all users.
Attributes
- calc(reco: DataFrame, interactions: DataFrame) float[source]
Calculate metric value from merged recommendations.
- Parameters
merged (pd.DataFrame) – Result of merging recommendations and interactions tables. Can be obtained using merge_reco function.
reco (DataFrame) –
interactions (DataFrame) –
- Returns
Value of metric (average between users).
- Return type
float
- calc_per_user(reco: DataFrame, interactions: DataFrame) Series[source]
Calculate metric values for all users.
- Parameters
reco (pd.DataFrame) – Recommendations table with columns Columns.User, Columns.Item, Columns.Rank.
interactions (pd.DataFrame) – Interactions table with columns Columns.User, Columns.Item.
- Returns
Values of metric (index - user id, values - metric value for every user).
- Return type
pd.Series