File size: 751 Bytes
45e60de
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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