src.fairreckitlib.evaluation.metrics.metric_factory
This module contains functionality to create and resolve metric factories.
Functions:
create_metric_params_k: create metric config parameters with a K param.
create_accuracy_metric_factory: create metric category factory for accuracy metrics.
create_coverage_metric_factory: create metric category factory for coverage metrics.
create_rating_metric_factory: create metric category factory for rating metrics.
This program has been developed by students from the bachelor Computer Science at Utrecht University within the Software Project course. © Copyright Utrecht University (Department of Information and Computing Sciences)
1"""This module contains functionality to create and resolve metric factories. 2 3Functions: 4 5 create_metric_params_k: create metric config parameters with a K param. 6 create_accuracy_metric_factory: create metric category factory for accuracy metrics. 7 create_coverage_metric_factory: create metric category factory for coverage metrics. 8 create_rating_metric_factory: create metric category factory for rating metrics. 9 10This program has been developed by students from the bachelor Computer Science at 11Utrecht University within the Software Project course. 12© Copyright Utrecht University (Department of Information and Computing Sciences) 13""" 14 15from ...core.core_constants import DEFAULT_TOP_K 16from ...core.config.config_factories import Factory, create_factory_from_list 17from ...core.config.config_parameters import ConfigParameters 18from .lenskit import lenskit_accuracy_metric, lenskit_rating_metric 19from .rexmex import rexmex_coverage_metric, rexmex_rating_metric 20from .metric_constants import KEY_METRIC_PARAM_K, MetricCategory, Metric 21 22 23def create_metric_params_k() -> ConfigParameters: 24 """Create the parameters of a metric that utilizes the K param. 25 26 Returns: 27 the configuration parameters of the metric. 28 """ 29 params = ConfigParameters() 30 params.add_number(KEY_METRIC_PARAM_K, int, DEFAULT_TOP_K, (1, DEFAULT_TOP_K)) 31 return params 32 33 34def create_accuracy_metric_factory() -> Factory: 35 """Create the factory with Accuracy metrics. 36 37 Returns: 38 the factory with all available metrics. 39 """ 40 return create_factory_from_list(MetricCategory.ACCURACY.value, [ 41 (Metric.HIT_RATIO.value, lenskit_accuracy_metric.create_hit_ratio, create_metric_params_k), 42 (Metric.NDCG.value, lenskit_accuracy_metric.create_ndcg, create_metric_params_k), 43 (Metric.PRECISION.value, lenskit_accuracy_metric.create_precision, create_metric_params_k), 44 (Metric.RECALL.value, lenskit_accuracy_metric.create_recall, create_metric_params_k), 45 (Metric.MRR.value, lenskit_accuracy_metric.create_mean_recip_rank, None), 46 ]) 47 48 49def create_coverage_metric_factory() -> Factory: 50 """Create the factory with Coverage metrics. 51 52 Returns: 53 the factory with all available metrics. 54 """ 55 return create_factory_from_list(MetricCategory.COVERAGE.value, [ 56 (Metric.ITEM_COVERAGE.value, rexmex_coverage_metric.create_item_coverage, None), 57 (Metric.USER_COVERAGE.value, rexmex_coverage_metric.create_user_coverage, None) 58 ]) 59 60 61def create_rating_metric_factory() -> Factory: 62 """Create the factory with Rating metrics. 63 64 Returns: 65 the factory with all available metrics. 66 """ 67 return create_factory_from_list(MetricCategory.RATING.value, [ 68 (Metric.MAE.value, lenskit_rating_metric.create_mae, None), 69 (Metric.MAPE.value, rexmex_rating_metric.create_mape, None), 70 (Metric.MSE.value, rexmex_rating_metric.create_mse, None), 71 (Metric.RMSE.value, lenskit_rating_metric.create_rmse, None) 72 ])
def
create_metric_params_k() -> src.fairreckitlib.core.config.config_parameters.ConfigParameters:
24def create_metric_params_k() -> ConfigParameters: 25 """Create the parameters of a metric that utilizes the K param. 26 27 Returns: 28 the configuration parameters of the metric. 29 """ 30 params = ConfigParameters() 31 params.add_number(KEY_METRIC_PARAM_K, int, DEFAULT_TOP_K, (1, DEFAULT_TOP_K)) 32 return params
Create the parameters of a metric that utilizes the K param.
Returns: the configuration parameters of the metric.
def
create_accuracy_metric_factory() -> src.fairreckitlib.core.config.config_factories.Factory:
35def create_accuracy_metric_factory() -> Factory: 36 """Create the factory with Accuracy metrics. 37 38 Returns: 39 the factory with all available metrics. 40 """ 41 return create_factory_from_list(MetricCategory.ACCURACY.value, [ 42 (Metric.HIT_RATIO.value, lenskit_accuracy_metric.create_hit_ratio, create_metric_params_k), 43 (Metric.NDCG.value, lenskit_accuracy_metric.create_ndcg, create_metric_params_k), 44 (Metric.PRECISION.value, lenskit_accuracy_metric.create_precision, create_metric_params_k), 45 (Metric.RECALL.value, lenskit_accuracy_metric.create_recall, create_metric_params_k), 46 (Metric.MRR.value, lenskit_accuracy_metric.create_mean_recip_rank, None), 47 ])
Create the factory with Accuracy metrics.
Returns: the factory with all available metrics.
def
create_coverage_metric_factory() -> src.fairreckitlib.core.config.config_factories.Factory:
50def create_coverage_metric_factory() -> Factory: 51 """Create the factory with Coverage metrics. 52 53 Returns: 54 the factory with all available metrics. 55 """ 56 return create_factory_from_list(MetricCategory.COVERAGE.value, [ 57 (Metric.ITEM_COVERAGE.value, rexmex_coverage_metric.create_item_coverage, None), 58 (Metric.USER_COVERAGE.value, rexmex_coverage_metric.create_user_coverage, None) 59 ])
Create the factory with Coverage metrics.
Returns: the factory with all available metrics.
def
create_rating_metric_factory() -> src.fairreckitlib.core.config.config_factories.Factory:
62def create_rating_metric_factory() -> Factory: 63 """Create the factory with Rating metrics. 64 65 Returns: 66 the factory with all available metrics. 67 """ 68 return create_factory_from_list(MetricCategory.RATING.value, [ 69 (Metric.MAE.value, lenskit_rating_metric.create_mae, None), 70 (Metric.MAPE.value, rexmex_rating_metric.create_mape, None), 71 (Metric.MSE.value, rexmex_rating_metric.create_mse, None), 72 (Metric.RMSE.value, lenskit_rating_metric.create_rmse, None) 73 ])
Create the factory with Rating metrics.
Returns: the factory with all available metrics.