recpack.metrics.CalibratedRecallK
- class recpack.metrics.CalibratedRecallK(K)
Computes number of Top-K recommendations that were hits divided by the minimum of K and number of true interactions of the user.
This differs from recall as we know it in that it accounts for when K < #true, because we can’t expect a list of K recommendations to cover more than K true interactions.
\[\text{CalibratedRecall}(u) = \frac{\sum\limits_{i \in \text{topK}(u)} y^{true}_{u,i} }{\text{min}(\sum\limits_{j \in I} y^{true}_{u,j}, K)}\]- Parameters
K (int) – Size of the recommendation list consisting of the Top-K item predictions.
Methods
calculate(y_true, y_pred)Computes metric given true labels
y_trueand predicted scoresy_pred.Attributes
The names of the columns in the results DataFrame.
Name of the metric.
Dimension of the item-space in both
y_trueandy_predDimension of the user-space in both
y_trueandy_predafter elimination of users without interactions iny_true.Get the detailed results for this metric.
Global metric value obtained by taking the average over all users.
- calculate(y_true: scipy.sparse._csr.csr_matrix, y_pred: scipy.sparse._csr.csr_matrix) None
Computes metric given true labels
y_trueand predicted scoresy_pred. Only Top-K recommendations are considered.Detailed metric results can be retrieved with
results. Global aggregate metric value is retrieved asvalue.- Parameters
y_true (csr_matrix) – True user-item interactions.
y_pred (csr_matrix) – Predicted affinity of users for items.
- property col_names
The names of the columns in the results DataFrame.
- property name
Name of the metric.
- property num_items: int
Dimension of the item-space in both
y_trueandy_pred
- property num_users: int
Dimension of the user-space in both
y_trueandy_predafter elimination of users without interactions iny_true.
- property results
Get the detailed results for this metric.
Contains an entry for every user.
- Returns
The results DataFrame with columns: user_id, score
- Return type
pd.DataFrame
- property value
Global metric value obtained by taking the average over all users.