TimeSeriesPredictor.evaluate

TimeSeriesPredictor.evaluate(data: TimeSeriesDataFrame | DataFrame | Path | str, model: str | None = None, metrics: str | TimeSeriesScorer | List[str | TimeSeriesScorer] | None = None, cutoff: int | None = None, display: bool = False, use_cache: bool = True) Dict[str, float][source]

评估给定数据集的预测准确性。

此方法使用 data 中每个时间序列的最后 self.prediction_length 个时间步作为保留集来衡量预测准确性。

注意

评估指标始终以“越大越好”的格式报告。这意味着像 MASE 或 MAPE 这样的指标将乘以 -1,因此它们的值将是负数。这对于避免用户在查看评估结果时需要知道指标来判断是否越大越好是必要的。

参数:
  • data (Union[TimeSeriesDataFrame, pd.DataFrame, Path, str]) –

    用于评估最佳模型的数据集。如果未提供 cutoff,则 data 中每个时间序列的最后 prediction_length 个时间步将作为预测的保留集,并在这些时间步上计算预测准确性。如果提供了 cutoff,则使用每个时间序列中从第 -cutoff 个到第 -cutoff + prediction_length 个时间步进行评估。

    必须包含历史数据和未来数据(即,如果未提供 cutoffdata 中所有时间序列的长度必须至少为 prediction_length + 1,否则为 -cutoff + 1)。

    data 中列和静态特征的名称及数据类型必须与用于训练预测器的 train_data 匹配。

    如果提供的数据是 pandas.DataFrame,AutoGluon 将尝试将其转换为 TimeSeriesDataFrame。如果提供的是 strPath,AutoGluon 将尝试加载此文件。

  • model (str, optional) – 您希望评估的模型的名称。默认情况下,将使用训练期间表现最佳(验证分数最高)的模型。

  • metrics (str, TimeSeriesScorer or List[Union[str, TimeSeriesScorer]], optional) – 用于计算分数的评估指标或指标列表。默认为 self.eval_metric。支持字符串格式的指标名称以及基于 TimeSeriesScorer 的自定义指标。

  • cutoff (int, optional) – 一个小于或等于 -1 * prediction_length整数,表示 data 中开始预测评估的时间步,即时间序列从第 -cutoff 个时间步到第 -cutoff + prediction_length 个时间步进行评估。默认为 -1 * prediction_length,使用每个时间序列的最后 prediction_length 个时间步进行评估。

  • display (bool, default = False) – 如果为 True,则将打印分数。

  • use_cache (bool, default = True) – 如果为 True,将尝试使用缓存的预测结果。如果为 False,将忽略缓存的预测结果。如果在创建 TimeSeriesPredictor 时将 cache_predictions 设置为 False,则此参数将被忽略。

返回值:

scores_dict – 字典,其中键 = 评估指标,值 = 每个指标对应的性能。为保持一致性,误差指标将翻转其符号以遵循此约定。例如,将报告负值的 MAPE。要获取 eval_metric 的分数,请执行 output[predictor.eval_metric.name]

返回类型:

Dict[str, float]