Source code for chap_core.assessment.evaluator_suites
from chap_core.assessment.evaluator import ComponentBasedEvaluator
import math
[docs]
def mae_error(truth: float, predictions: list[float]):
return abs(truth - sum(predictions) / len(predictions))
[docs]
def mean_across_time(errors):
return sum(errors) / len(errors)
[docs]
def mean_across_regions(errors):
return sum(errors) / len(errors)
[docs]
def mse_error(truth: float, predictions: list[float]):
return (truth - sum(predictions) / len(predictions)) ** 2
[docs]
def sqrt_mean_across_time(errors):
return math.sqrt(sum(errors) / len(errors))
mae_component_evaluator = ComponentBasedEvaluator("MAE", mae_error, mean_across_time, None)
mae_country_evaluator = ComponentBasedEvaluator("MAE country", mae_error, mean_across_time, mean_across_regions)
absError_timepoint_evaluator = ComponentBasedEvaluator("MAE timpeoint", mae_error, None, None)
rmse_evaluator = ComponentBasedEvaluator("rmse", mse_error, sqrt_mean_across_time, None)
evaluator_suite_options = {
"onlyLocalMAE": [mae_component_evaluator],
"localAndGlobalMAE": [mae_component_evaluator, mae_country_evaluator],
"localMAEandRMSE": [mae_component_evaluator, rmse_evaluator],
"mix": [mae_component_evaluator, rmse_evaluator, absError_timepoint_evaluator, mae_country_evaluator],
}