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