ClassificationMetric

class rectools.metrics.classification.ClassificationMetric(k: int)[source]

Bases: MetricAtK

Classification metric base class.

Warning: This class should not be used directly. Use derived classes instead.

Parameters

k (int) – Number of items at the top of recommendations list that will be used to calculate metric.

Inherited-members

Methods

calc(reco, interactions, catalog)

Calculate metric value.

calc_from_confusion_df(confusion_df, catalog)

Calculate metric value from prepared confusion matrix.

calc_per_user(reco, interactions, catalog)

Calculate metric values for all users.

calc_per_user_from_confusion_df(...)

Calculate metric values for all users from prepared confusion matrix.

Attributes

calc(reco: DataFrame, interactions: DataFrame, catalog: Collection[Union[str, int]]) float[source]

Calculate metric value.

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.

  • catalog (collection) – Collection of unique item ids that could be used for recommendations.

Returns

Value of metric (average between users).

Return type

float

calc_from_confusion_df(confusion_df: DataFrame, catalog: Collection[Union[str, int]]) float[source]

Calculate metric value from prepared confusion matrix.

Parameters
  • confusion_df (pd.DataFrame) – Table with some confusion values for every user. Columns are: Columns.User, LIKED, TP, FP, FN. This table can be generated by make_confusions (or calc_confusions) function. See its description for details.

  • catalog (collection) – Collection of unique item ids that could be used for recommendations.

Returns

Value of metric (average between users).

Return type

float

calc_per_user(reco: DataFrame, interactions: DataFrame, catalog: Collection[Union[str, int]]) 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.

  • catalog (collection) – Collection of unique item ids that could be used for recommendations.

Returns

Values of metric (index - user id, values - metric value for every user).

Return type

pd.Series

calc_per_user_from_confusion_df(confusion_df: DataFrame, catalog: Collection[Union[str, int]]) Series[source]

Calculate metric values for all users from prepared confusion matrix.

Parameters
  • confusion_df (pd.DataFrame) – Table with some confusion values for every user. Columns are: Columns.User, LIKED, TP, FP, FN. This table can be generated by make_confusions (or calc_confusions) function. See its description for details.

  • catalog (collection) – Collection of unique item ids that could be used for recommendations.

Returns

Values of metric (index - user id, values - metric value for every user).

Return type

pd.Series