ratingslib.ratings.aggregation module

Module that implements rating and ranking aggregation methods

class RatingAggregation(version=ratings.AGGREGATIONMARKOV, votes_or_weights: Optional[Dict[str, float]] = None, b: float = 0.9)

Bases: RatingSystem

Class for Rating aggregation

Parameters
  • version (str, default=ratings.AGGREGATIONMARKOV) – A string that shows the version of rating system. The available versions can be found in ratingslib.utils.enums.ratings class.

  • votes_or_weights (Optional[Dict[str, float]]) – Votes or weigths for matrices

  • b (float, optional) – Valid if aggregation method = ratings.AGGREGATIONMARKOV, by default 0.9

calc_rating_distances(data_df: DataFrame, rating_column_name: str) ndarray

Calculate and create pairwise matrix by taking into account the rating differences (as distances)

Parameters
  • data_df (pd.DataFrame) – dataset of ratings

  • rating_column_name (str) – which is the rating column of dataset

Returns

matrix – rating distances matrix

Return type

np.ndarray

calc_dict_rating_distances(data_df: DataFrame, rating_columns: List[str]) Dict[str, ndarray]

Calculate and create dictionary of pairwise matrices by taking into account the rating differences (as distances). Each column represents the rating method name.

Parameters
  • data_df (pd.DataFrame) – dataset of ratings

  • rating_columns (List[str]) – list of columns that refers to ratings

Returns

matrices_dict – dictionary that maps column to rating distance matrix

Return type

Dict[str, np.ndarray]

static rating_aggregation(matrices_dict: Dict[str, ndarray], votes_or_weights: Optional[Dict[str, float]] = None, aggregation_method: str = ratings.AGGREGATIONMARKOV, b: float = 0.9) ndarray

Rating aggregation from rating lists

Parameters
  • matrices_dict (Dict[str, np.ndarray]) – Dictionary that maps name to rating distance matrix

  • votes_or_weights (Optional[Dict[str, float]]) – Votes or weigths for matrices

  • aggregation_method (str, default=ratings.AGGREGATIONMARKOV) – Name of aggregation method

  • b (float, optional) – Valid if aggregation method = ratings.AGGREGATIONMARKOV, by default 0.9

Returns

rating – Aggregated rating vector

Return type

numpy.ndarray

Raises

ValueError – If matrices_dict and votes_or_weights parameters don’t have the same size

computation_phase()

To be overridden in subclasses.

preparation_phase(data_df: DataFrame, items_df: DataFrame, columns_dict: Optional[Dict[str, Any]] = None)

To be overridden in subclasses.

rate(data_df: DataFrame, items_df: DataFrame, sort: bool = False, columns_dict: Optional[Dict[str, Any]] = None) DataFrame

This method computes ratings for a pairwise data. (e.g. soccer teams games). To be overridden in subclasses.

Parameters
  • data_df (pandas.DataFrame) – The pairwise data.

  • items_df (pandas.DataFrame) – Set of items (e.g. teams) to be rated

  • sort (bool, default=True.) – If true, the output is sorted by rating value

  • columns_dict (Optional[Dict[str, str]]) – The column names of data file. See ratingslib.datasets.parameters.COLUMNS_DICT for more details.

Returns

items_df – The set of items with their rating and ranking.

Return type

pandas.DataFrame

class RankingAggregation(version=ratings.RANKINGAVG)

Bases: RatingSystem

Class for Ranking Aggregation

Parameters

version (str, default=ratings.RANKINGAVG) – A string that shows the version of rating system. The available versions can be found in ratingslib.utils.enums.ratings class.

static ranking_aggregation(data_df: DataFrame, rating_columns: List[str], aggregation_method: str = ratings.RANKINGAVG) ndarray

Ranking aggregation from ranking lists

Parameters
  • data_df (pd.DataFrame) – Rating values are the columns of DataFrame

  • aggregation_method (str, default=ratings.AGGREGATIONAVG) – Name of aggregation method

Returns

rating – Aggregated rating vector

Return type

numpy.ndarray

Raises

ValueError – If matrices_dict and votes_or_weights parameters don’t have the same size

computation_phase()

All the calculations are made in ratingslib.ratings.aggregations.RankingAggregation.ranking_aggregation() method.

preparation_phase(data_df: DataFrame, items_df: DataFrame, columns_dict: Optional[Dict[str, Any]] = None)

To be overridden in subclasses.

rate(data_df: DataFrame, items_df: DataFrame, sort: bool = False, columns_dict: Optional[Dict[str, Any]] = None) DataFrame

This method computes ratings for a pairwise data. (e.g. soccer teams games). To be overridden in subclasses.

Parameters
  • data_df (pandas.DataFrame) – The pairwise data.

  • items_df (pandas.DataFrame) – Set of items (e.g. teams) to be rated

  • sort (bool, default=True.) – If true, the output is sorted by rating value

  • columns_dict (Optional[Dict[str, str]]) – The column names of data file. See ratingslib.datasets.parameters.COLUMNS_DICT for more details.

Returns

items_df – The set of items with their rating and ranking.

Return type

pandas.DataFrame