ModelBase

class rectools.models.base.ModelBase(*args: Any, verbose: int = 0, **kwargs: Any)[source]

Bases: object

Base model class.

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

Inherited-members

Parameters
  • args (Any) –

  • verbose (int) –

  • kwargs (Any) –

Methods

fit(dataset, *args, **kwargs)

Fit model.

recommend(users, dataset, k, filter_viewed)

Recommend items for users.

recommend_to_items(target_items, dataset, k)

Recommend items for target items.

fit(dataset: Dataset, *args: Any, **kwargs: Any) T[source]

Fit model.

Parameters
  • dataset (Dataset) – Dataset with input data.

  • self (T) –

  • args (Any) –

  • kwargs (Any) –

Return type

self

recommend(users: Union[Sequence[Hashable], ndarray], dataset: Dataset, k: int, filter_viewed: bool, items_to_recommend: Optional[Union[Sequence[Hashable], ndarray]] = None, add_rank_col: bool = True) DataFrame[source]

Recommend items for users.

To use this method model must be fitted.

Parameters
  • users (np.ndarray) – Array of external user ids to recommend for.

  • dataset (Dataset) – Dataset with input data. Usually it’s the same dataset that was used to fit model.

  • k (int) – Derived number of recommendations for every user. Pay attention that in some cases real number of recommendations may be less than k.

  • filter_viewed (bool) – Whether to filter from recommendations items that user has already interacted with.

  • items_to_recommend (np.ndarray, optional) – Whitelist of item external ids. If given, only these items will be used for recommendations. Otherwise all items from dataset will be used.

  • add_rank_col (bool, default True) – Whether to add rank column to recommendations. If True column Columns.Rank will be added. This column contain integers from 1 to number of user recommendations. In any case recommendations are sorted per rank for every user. The lesser the rank the more recommendation is relevant.

Returns

Recommendations table with columns Columns.User, Columns.Item, Columns.Score[, Columns.Rank]. 1st column contains external user ids, 2nd - external ids of recommended items sorted for each user by relevance, 3rd - score that model gives for the user-item pair, 4th (present only if add_rank_col is True) - integers from 1 to number of user recommendations. Recommendations for every user are always sorted by relevance.

Return type

pd.DataFrame

Raises

NotFittedError – If called for not fitted model.

recommend_to_items(target_items: Union[Sequence[Hashable], ndarray], dataset: Dataset, k: int, filter_itself: bool = True, items_to_recommend: Optional[Union[Sequence[Hashable], ndarray]] = None, add_rank_col: bool = True) DataFrame[source]

Recommend items for target items.

To use this method model must be fitted.

Parameters
  • target_items (np.ndarray) – Array of external item ids to recommend for.

  • dataset (Dataset) – Dataset with input data. Usually it’s the same dataset that was used to fit model.

  • k (int) – Derived number of recommendations for every target item. Pay attention that in some cases real number of recommendations may be less than k.

  • filter_itself (bool, default True) – If True, item will be excluded from recommendations to itself.

  • items_to_recommend (np.ndarray, optional, default None) – Whitelist of item external ids. If given, only these items will be used for recommendations. Otherwise all items from dataset will be used.

  • add_rank_col (bool, default True) – Whether to add rank column to recommendations. If True column Columns.Rank will be added. This column contain integers from 1 to number of item recommendations. In any case recommendations are sorted per rank for every target item. Less rank means more relevant recommendation.

Returns

Recommendations table with columns Columns.TargetItem, Columns.Item, Columns.Score, [,`Columns.Rank`]. 1st column contains external target item ids, 2nd - external ids of recommended items sorted for each target item by relevance, 3rd - score that model gives for the target-item pair, 4th (present only if add_rank_col is True) - integers from 1 to number of recommendations. Recommendations for every target item are always sorted by relevance.

Return type

pd.DataFrame

Raises

NotFittedError – If called for not fitted model.