debias_interactions
- rectools.metrics.debias.debias_interactions(interactions: DataFrame, config: DebiasConfig) DataFrame[source]
Down-sample the size of interactions, excluding some interactions with popular items.
Algorithm:
1. Calculate item “popularity” (here: number of unique users that had interaction with the item) distribution from interactions; 2. Find first (Q1) and third (Q3) quartiles in items “popularity” distribution; 3. Calculate interquartile range (IQR) = Q3 - Q1; 4. Calculate maximum value inside by formula: Q3 + iqr_coef * IQR; 5. Down-sample for all exceeding items in interactions, randomly keeping the maximum group of users to a size not exceeding maximum value inside
- Parameters
interactions (pd.DataFrame) – Table with previous user-item interactions, with columns Columns.User, Columns.Item.
config (DebiasConfig) – Config with debias method parameters (iqr_coef, random_state).
- Returns
Downsampling interactions.
- Return type
pd.DataFrame