autogluon.timeseries.TimeSeriesPredictor

class autogluon.timeseries.TimeSeriesPredictor(target: str | None = None, known_covariates_names: List[str] | None = None, prediction_length: int = 1, freq: str = None, eval_metric: str | TimeSeriesScorer | None = None, eval_metric_seasonal_period: int | None = None, path: str | Path | None = None, verbosity: int = 2, log_to_file: bool = True, log_file_path: str | Path = 'auto', quantile_levels: List[float] | None = None, cache_predictions: bool = True, learner_type: Type[AbstractLearner] | None = None, learner_kwargs: dict | None = None, label: str | None = None, **kwargs)[source]

AutoGluon TimeSeriesPredictor 预测多个相关时间序列的未来值。

TimeSeriesPredictor 提供了单变量时间序列的概率(分位数)多步预测。 预测包括均值(即给定过去值的未来值的条件期望),以及预测分布的分位数,表示可能的未来结果范围。

TimeSeriesPredictor 既适用于所有时间序列共享的“全局”深度学习模型(例如,DeepAR、Transformer),也适用于每个单独时间序列的“局部”统计模型(例如,ARIMA、ETS)。

TimeSeriesPredictor 期望输入数据并以 TimeSeriesDataFrame 格式进行预测。

Parameters:
  • target (str, default = "target") – 包含要预测的目标值(即时间序列的数值观测值)的列的名称。

  • prediction_length (int, default = 1) – 预测范围,即模型应训练以预测未来的时间步数。 例如,如果时间序列包含每日观测值,设置 prediction_length = 3 将训练 模型以预测从最近观测值起最多3天的未来。

  • freq (str, 可选) –

    时间序列数据的频率(参见 pandas 文档 了解可用的频率)。例如,"D" 表示每日数据,"h" 表示每小时数据。

    默认情况下,预测器会尝试从数据中自动推断频率。仅在以下两种情况下应设置此参数:

    1. 时间序列数据具有不规则的时间戳,因此无法自动推断频率。

    2. 您希望以不同的频率重新采样原始数据(例如,将每小时测量值转换为每日测量值)。

    如果在创建预测器时提供了 freq,则传递给预测器的所有数据将自动按此频率重新采样。

  • eval_metric (Union[str, TimeSeriesScorer], default = "WQL") –

    用于最终评估未来测试数据预测结果的指标。AutoGluon 会调整超参数以在验证数据上改进此指标,并根据此指标对模型进行排序(在验证数据上)。

    概率预测指标(在指定的 quantile_levels 的分位数预测上评估):

    • "SQL": 缩放分位数损失

    • "WQL": 加权分位数损失

    点预测指标(这些指标总是在预测的 "mean" 列上评估):

    • "MAE": 平均绝对误差

    • "MAPE": 平均绝对百分比误差

    • "MASE": 平均绝对缩放误差

    • "MSE": 均方误差

    • "RMSE": 均方根误差

    • "RMSLE": 均方根对数误差

    • "RMSSE": 均方根缩放误差

    • "SMAPE": “对称”平均绝对百分比误差

    • "WAPE": 加权绝对百分比误差

    有关这些指标的更多信息,请参阅 Forecasting Time Series - Evaluation Metrics

  • eval_metric_seasonal_period (int, optional) – 用于计算某些评估指标(如平均绝对缩放误差(MASE))的季节性周期。默认为 None,在这种情况下,季节性周期将根据数据频率计算。

  • known_covariates_names (List[str], optional) –

    在预测范围内所有时间步长中预先已知的协变量名称。这些也被称为动态特征、外生变量、附加回归量或相关时间序列。此类协变量的示例包括假期、促销活动或天气预报。

    如果提供了known_covariates_names,则:

    • fit(), evaluate(), 和 leaderboard() 将期望一个数据框,其中包含known_covariates_names中列出的列(除了target列)。

    • predict() 将期望一个额外的关键字参数known_covariates,其中包含TimeSeriesDataFrame格式的已知协变量的未来值。

  • quantile_levels (List[float], optional) – 递增的小数列表,指定在进行分布预测时应估计哪些分位数。默认为 [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]

  • 路径 (strpathlib.Path, 可选) – 保存模型和中间输出的目录路径。默认为在工作目录中创建的时间戳文件夹 AutogluonModels/ag-[TIMESTAMP]

  • verbosity (int, default = 2) – 详细级别范围从0到4,控制打印到标准输出的信息量。较高的级别对应更详细的打印语句,而verbosity=0会抑制输出,包括警告。详细级别0对应Python的ERROR日志级别,只有错误输出会被记录。详细级别1和2分别会额外记录警告和信息输出。详细级别4启用所有日志输出,包括来自AutoGluon的调试消息以及所有依赖项(GluonTS、PyTorch Lightning、AutoGluon-Tabular等)的日志。

  • log_to_file (bool, default = True) – 是否将日志保存到文件中以供后续参考

  • log_file_path (Union[str, Path], default = "auto") – 保存日志的文件路径。 如果为auto,日志将保存在predictor_path/logs/predictor_log.txt下。 如果log_to_file设置为False,则忽略此设置。

  • cache_predictions (bool, default = True) – 如果为True,预测器将缓存并重用由单个模型做出的预测,每当调用 predict(), leaderboard(), 或 evaluate() 方法时。这可以显著加快这些方法的速度。如果为False,将禁用缓存。您可以将此参数设置为False以减少磁盘使用量,但代价是更长的预测时间。

  • 标签 (str, 可选) – target 的别名。

__init__(target: str | None = None, known_covariates_names: List[str] | None = None, prediction_length: int = 1, freq: str = None, eval_metric: str | TimeSeriesScorer | None = None, eval_metric_seasonal_period: int | None = None, path: str | Path | None = None, verbosity: int = 2, log_to_file: bool = True, log_file_path: str | Path = 'auto', quantile_levels: List[float] | None = None, cache_predictions: bool = True, learner_type: Type[AbstractLearner] | None = None, learner_kwargs: dict | None = None, label: str | None = None, **kwargs)[source]

方法

evaluate

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

feature_importance

通过将每个特征替换为相同特征的打乱版本(也称为排列特征重要性)或分配代表特征中位数或众数的常数值,并计算模型预测性能的相对下降,来计算给定模型的特征重要性分数。

fit

将概率预测模型拟合到给定的时间序列数据集。

fit_summary

输出关于在fit()期间生成的模型的信息摘要。

info

返回一个对象字典,每个对象描述训练过程和训练模型的一个属性。

leaderboard

返回一个显示每个训练模型性能的排行榜,输出是一个带有列的pandas数据框:

load

从给定的path加载现有的TimeSeriesPredictor

model_names

返回由此预测器对象训练的模型名称列表。

persist

将模型持久化在内存中以减少推理延迟。

plot

绘制历史时间序列值和预测值。

predict

返回给定数据集的分位数和均值预测,从每个时间序列的末尾开始。

refit_full

在所有数据上重新训练模型(训练 + 验证)。

save

将此预测器保存到此预测器指定的目录中的文件中,目录由path指定。

unpersist

取消持久化模型以减少内存使用。

属性

model_best

返回训练器中最佳模型的名称。

predictor_file_name