Metrics
- class recsyslearn.accuracy.metrics.NDCG
Bases:
AccuracyMetricNDCG evaluator for recommender systems.
- classmethod evaluate(top_n: DataFrame, pos_items: DataFrame, ats: tuple = (5, 10)) Series
Compute the NDCG@k of a model by using its recommendation list. Returns the NDCG averaged over users.
- Parameters:
top_n (pd.DataFrame) – Top N recommendations’ lists for every user. Columns: [‘user’, ‘item’, ‘rank’].
pos_items (pd.DataFrame) – Relevant items per user. Columns: [‘user’, ‘pos_items’].
ats (tuple, default (5, 10)) – The tuple of values at which to evaluate NDCG@k.
- Raises:
ColumnsNotExistException – If top_n does not contain columns (‘user’, ‘item’, ‘rank’) or pos_items does not contain columns (‘user’, ‘pos_items’).
RecListTooShortException – If the top_n list does not contain enough items.
- Returns:
The NDCG@n averaged over users, in the form (‘NDCG@k_0’, …, ‘NDCG@k_n’)
- Return type:
pd.Series
- class recsyslearn.beyond_accuracy.metrics.Coverage
Bases:
BeyondAccuracyMetricCoverage evaluator for recommender systems. Used formula can be found here https://doi.org/10.1007/s13735-018-0154-2
- classmethod evaluate(top_n: DataFrame, items: list) float
Compute the coverage of a model by using its recommendation list.
- Parameters:
top_n (pd.DataFrame) – Top-N recommendations’ lists for every user with items or users already segmented.
items (list or array-like) – List of items in the dataset.
- Raises:
ColumnsNotExistException – If top_n not in the form (‘user’, ‘item’, ‘rank’, ‘group’).
- Returns:
The computed coverage.
- Return type:
float
- class recsyslearn.beyond_accuracy.metrics.Novelty
Bases:
BeyondAccuracyMetricNovelty evaluator for recommender systems. Used formula can be found here https://doi.org/10.1007/s13735-018-0154-2 where popularity is defined in terms of the segmentation of the item groups (e.g. short head -> 3, mid tail -> 2, long tail -> 1) or in terms of percentage of user-item interactions.
- classmethod evaluate(top_n: DataFrame, popularity_definition='group') float
Compute the novelty of a model by using its recommendation list and the segmented item groups.
- Parameters:
top_n (pd.DataFrame) – Top-N recommendations’ lists for every user with items or users already segmented.
popularity_definition (str) – Either ‘group’ or ‘percentage’, to choose whether popularity is computed in terms of segmenting items/users according to the distribution of user-item interactions or if it is defined as the percentage of user-item interactions.
- Raises:
ColumnsNotExistException – If top_n not in the form (‘user’, ‘item’, ‘rank’, popularity_definition).
- Returns:
The computed novelty.
- Return type:
float
- class recsyslearn.fairness.metrics.Entropy
Bases:
FairnessMetricEntropy evaluator for recommender systems.
- evaluate(top_n: DataFrame, rel_matrix: DataFrame | None = None) float
Compute the entropy of a model by using its recommendation list.
- Parameters:
top_n (pd.DataFrame) – Top N recommendations’ lists for every user with items or users already segmented.
rel_matrix (pd.DataFrame, default None) – Relevant items for users. It could be, for example, the items with a rating >= threshold.
- Raises:
ColumnsNotExistException – If top_n not in the form (‘user’, ‘item’, ‘rank’, ‘group’).
- Returns:
The computed entropy.
- Return type:
float
- class recsyslearn.fairness.metrics.KullbackLeibler
Bases:
FairnessMetricKullback-Leibler divergence evaluator for recommender systems.
- evaluate(top_n: DataFrame, target_representation: DataFrame, rel_matrix: DataFrame | None = None) float
Compute the Kullback-Leibler divergence of a model, for a given target representation, by using its recommendation list.
- Parameters:
top_n (pd.DataFrame) – Top N recommendations’ lists for every user with items or users already segmented.
target_representation (pd.DataFrame) – The target representation desired for each group.
rel_matrix (pd.DataFrame, default None) – Relevant items for users. It could be, for example, the items with a rating >= threshold.
- Raises:
ColumnsNotExistException – If top_n not in the form (‘user’, ‘item’, ‘rank’, ‘group’) or if target_representation not in the form (‘group’, ‘target_representation’).
- Returns:
The computed KL Divergence for the given target representation.
- Return type:
float
- class recsyslearn.fairness.metrics.MutualInformation
Bases:
FairnessMetricMutual Information evaluator for recommender systems.
- evaluate(top_n: DataFrame, flag: str, rel_matrix: DataFrame | None = None) float
Compute the Mutual Information of a model by using its recommendation list.
- Parameters:
top_n (pd.DataFrame) – Top N recommendations’ lists for every user with items or users already segmented.
flag (str) – Which actor of the recommendation scenario has been segmented (i.e. user).
rel_matrix (pd.DataFrame, default None) – Relevant items for users. It could be, for example, the items with a rating >= threshold.
- Raises:
ColumnsNotExistException – If top_n not in the form (‘user’, ‘item’, ‘rank’, ‘group’).
- Returns:
The computed Mutual Information.
- Return type:
float