|
from typing import List |
|
|
|
from gluonts.dataset.split import split |
|
from gluonts.dataset.common import Dataset |
|
from gluonts.model.forecast import Forecast |
|
from gluonts.evaluation.backtest import _to_dataframe, Evaluator |
|
|
|
|
|
def score_predictions( |
|
dataset: Dataset, |
|
predictions: List[Forecast], |
|
prediction_length: int, |
|
seasonality: int, |
|
): |
|
_, test_template = split(dataset, offset=-prediction_length) |
|
test_data = test_template.generate_instances(prediction_length) |
|
ts_iterator = map(_to_dataframe, test_data) |
|
evaluator = Evaluator( |
|
quantiles=[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9], seasonality=seasonality |
|
) |
|
metrics, _ = evaluator(ts_iterator=ts_iterator, fcst_iterator=predictions) |
|
return metrics |
|
|