时间序列预测 - 模型动物园

注意

本文档面向高级用户,可能并非完全详尽。

有关稳定的公共 API,请参阅 TimeSeriesPredictor 的文档

本页面列出了 AutoGluon 中可用的时间序列预测模型。每个模型的可用超参数列在其他参数下。

如果您想覆盖默认超参数(手动配置模型)或定义自定义超参数搜索空间(超参数调优),如深入教程中所述,此列表将很有用。例如,以下代码将使用默认超参数(以及在其之上的加权集成)训练 TimeSeriesPredictor,模型包括 DeepARETS

predictor = TimeSeriesPredictor().fit(
   train_data,
   hyperparameters={
      "DeepAR": {},
      "ETS": {},
   },
)

超参数字典中的模型名称不必包含 "Model" 后缀(例如,"DeepAR""DeepARModel" 都对应于 DeepARModel)。

请注意,某些模型的超参数名称和默认值与原始库中的不同。

概述

NaiveModel

将预测值设为最后一个观测值的基线模型。

SeasonalNaiveModel

将预测值设为同一季节最后一个观测值的基线模型。

AverageModel

将预测值设为历史平均值或分位数的基线模型。

SeasonalAverageModel

将预测值设为同一季节历史平均值或分位数的基线模型。

ZeroModel

一个朴素的预测器,在整个预测范围内部始终返回 0 预测值,其中预测区间使用保形预测计算。

ETSModel

具有趋势和季节性的指数平滑模型。

AutoARIMAModel

自动调优的 ARIMA 模型。

AutoETSModel

自动调优的具有趋势和季节性的指数平滑模型。

AutoCESModel

使用复杂指数平滑模型进行预测,其中模型选择使用 Akaike 信息准则 [Svetunkov2022] 进行。

ThetaModel

Theta 预测模型 [Assimakopoulos2000]

ADIDAModel

使用聚合-分解间歇需求方法 (Aggregate-Dissagregate Intermittent Demand Approach) [Nikolopoulos2011] 的间歇需求预测模型。

CrostonModel

使用 [Croston1972][SyntetosBoylan2001] 中的 Croston 模型进行间歇需求预测。

IMAPAModel

使用间歇性多重聚合预测算法 (Intermittent Multiple Aggregation Prediction Algorithm) [Petropoulos2015] 的间歇需求预测模型。

NPTSModel

非参数时间序列预测器。

DeepARModel

基于循环神经网络的自回归预测模型 [Salinas2020]

DLinearModel

在预测前减去趋势的简单前馈神经网络 [Zeng2023]

PatchTSTModel

基于 Transformer 的预测器,将每个时间序列分割成块 [Nie2023]

SimpleFeedForwardModel

同时预测所有未来值的简单前馈神经网络。

TemporalFusionTransformerModel

结合 LSTM 和 Transformer 层来预测所有未来目标值的分位数 [Lim2021]

TiDEModel

来自 [Das2023] 的时间序列密集编码器模型。

WaveNetModel

使用 [Oord2016] 中提出的架构并带有量化目标的 WaveNet 估计器。

DirectTabularModel

使用 AutoGluon-Tabular 中的 TabularPredictor 同时预测所有未来时间序列值。

RecursiveTabularModel

使用 AutoGluon-Tabular 中的 TabularPredictor 逐一预测未来时间序列值。

ChronosModel

Chronos [Ansari2024] 预训练时间序列预测模型,可用于零样本预测或以任务特定方式微调。

基线模型

基线模型是使用最少历史数据进行预测的简单方法。它们用作评估更复杂方法的基准。

class autogluon.timeseries.models.NaiveModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

将预测值设为最后一个观测值的基线模型。

分位数是通过假设残差服从零均值正态分布获得的,其尺度根据残差的经验分布估计。如 https://otexts.com/fpp3/prediction-intervals.html 所述

参数:

n_jobs (int 或 float, default = 0.5) – 用于并行拟合模型的 CPU 核心数。设置为 0.0 到 1.0 之间的浮点数时,使用可用 CPU 核心的该比例。设置为正整数时,使用该数量的核心。设置为 -1 时,使用所有 CPU 核心。

class autogluon.timeseries.models.SeasonalNaiveModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

将预测值设为同一季节最后一个观测值的基线模型。

分位数是通过假设残差服从零均值正态分布获得的,其尺度根据残差的经验分布估计。如 https://otexts.com/fpp3/prediction-intervals.html 所述

参数:
  • seasonal_period (int 或 None, default = None) – 季节性模型中一个完整季节周期的时间步数。例如,日数据周周期为 7,月数据年周期为 12。设置为 None 时,将从训练数据的频率推断 seasonal_period。也可以通过提供大于 1 的整数手动指定。如果 seasonal_period(推断或提供)等于 1,将回退到朴素预测。如果时间序列的长度小于 seasonal_period,季节性也会被禁用。

  • n_jobs (int 或 float, default = 0.5) – 用于并行拟合模型的 CPU 核心数。设置为 0.0 到 1.0 之间的浮点数时,使用可用 CPU 核心的该比例。设置为正整数时,使用该数量的核心。设置为 -1 时,使用所有 CPU 核心。

class autogluon.timeseries.models.AverageModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

将预测值设为历史平均值或分位数的基线模型。

参数:
  • n_jobs (int 或 float, default = 0.5) – 用于并行拟合模型的 CPU 核心数。设置为 0.0 到 1.0 之间的浮点数时,使用可用 CPU 核心的该比例。设置为正整数时,使用该数量的核心。设置为 -1 时,使用所有 CPU 核心。

  • max_ts_length (Optional[int], default = None) – 如果非 None,则仅使用每个时间序列的最后 max_ts_length 个时间步来训练模型。这会显著加快拟合速度,并且通常不会导致准确性改变。

class autogluon.timeseries.models.SeasonalAverageModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

将预测值设为同一季节历史平均值或分位数的基线模型。

参数:
  • seasonal_period (int 或 None, default = None) – 季节性模型中一个完整季节周期的时间步数。例如,日数据周周期为 7,月数据年周期为 12。设置为 None 时,将从训练数据的频率推断 seasonal_period。也可以通过提供大于 1 的整数手动指定。如果 seasonal_period(推断或提供)等于 1,将回退到朴素预测。如果时间序列的长度小于 seasonal_period,季节性也会被禁用。

  • n_jobs (int 或 float, default = 0.5) – 用于并行拟合模型的 CPU 核心数。设置为 0.0 到 1.0 之间的浮点数时,使用可用 CPU 核心的该比例。设置为正整数时,使用该数量的核心。设置为 -1 时,使用所有 CPU 核心。

  • max_ts_length (Optional[int], default = None) – 如果非 None,则仅使用每个时间序列的最后 max_ts_length 个时间步来训练模型。这会显著加快拟合速度,并且通常不会导致准确性改变。

class autogluon.timeseries.models.ZeroModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

一个朴素的预测器,在整个预测范围内部始终返回 0 预测值,其中预测区间使用保形预测计算。

参数:
  • n_jobs (int 或 float, default = 0.5) – 用于并行拟合模型的 CPU 核心数。设置为 0.0 到 1.0 之间的浮点数时,使用可用 CPU 核心的该比例。设置为正整数时,使用该数量的核心。设置为 -1 时,使用所有 CPU 核心。

  • max_ts_length (int, default = 2500) – 如果非 None,则仅使用每个时间序列的最后 max_ts_length 个时间步来训练模型。这会显著加快拟合速度,并且通常不会导致准确性改变。

统计模型

统计模型捕捉数据中的简单模式,如趋势和季节性。

class autogluon.timeseries.models.ETSModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

具有趋势和季节性的指数平滑模型。

E(误差)、T(趋势)和 S(季节性)成分由用户固定并提供。

这是 statsforecast.models.AutoETS 的别名。

参数:
  • model (str, default = "AAA") – 描述 E(误差)、T(趋势)和 S(季节性)模型成分配置的模型字符串。每个成分可以是“M”(乘法)、“A”(加法)或“N”(省略)之一。例如,当 model=”ANN”(加法误差、无趋势、无季节性)时,ETS 将仅探索简单的指数平滑。

  • seasonal_period (int 或 None, default = None) – 季节性模型中一个完整季节周期的时间步数。例如,日数据周周期为 7,月数据年周期为 12。设置为 None 时,将从训练数据的频率推断 seasonal_period。也可以通过提供大于 1 的整数手动指定。如果 seasonal_period(推断或提供)等于 1,季节性将被禁用。

  • damped (bool, default = False) – 是否抑制趋势。

  • n_jobs (int 或 float, default = 0.5) – 用于并行拟合模型的 CPU 核心数。设置为 0.0 到 1.0 之间的浮点数时,使用可用 CPU 核心的该比例。设置为正整数时,使用该数量的核心。设置为 -1 时,使用所有 CPU 核心。

  • max_ts_length (int, default = 2500) – 如果非 None,则仅使用每个时间序列的最后 max_ts_length 个时间步来训练模型。这会显著加快拟合速度,并且通常不会导致准确性改变。

class autogluon.timeseries.models.AutoARIMAModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

自动调优的 ARIMA 模型。

使用信息准则自动选择最佳的 (p,d,q,P,D,Q) 模型参数

基于 statsforecast.models.AutoARIMA

参数:
  • d (int, optional) – 一阶差分阶数。如果为 None,将使用统计检验自动确定。

  • D (int, optional) – 季节差分阶数。如果为 None,将使用统计检验自动确定。

  • max_p (int, default = 5) – 自回归项的最大数量。

  • max_q (int, default = 5) – 移动平均项的最大阶数。

  • max_P (int, default = 2) – 季节自回归项的最大数量。

  • max_Q (int, default = 2) – 季节移动平均项的最大阶数。

  • max_d (int, default = 2) – 一阶差分的最大阶数。

  • max_D (int, default = 1) – 季节差分的最大阶数。

  • start_p (int, default = 2) – 逐步过程中的 p 的起始值。

  • start_q (int, default = 2) – 逐步过程中的 q 的起始值。

  • start_P (int, default = 1) – 逐步过程中的 P 的起始值。

  • start_Q (int, default = 1) – 逐步过程中的 Q 的起始值。

  • stationary (bool, default = False) – 将搜索限制在平稳模型。

  • seasonal (bool, default = True) – 是否考虑季节性模型。

  • approximation (bool, default = True) – 近似优化以加快收敛。

  • allowdrift (bool, default = False) – 如果为 True,则允许漂移项。

  • allowmean (bool, default = True) – 如果为 True,则允许非零均值。

  • seasonal_period (int 或 None, default = None) – 季节性模型中一个完整季节周期的时间步数。例如,日数据周周期为 7,月数据年周期为 12。设置为 None 时,将从训练数据的频率推断 seasonal_period。也可以通过提供大于 1 的整数手动指定。如果 seasonal_period(推断或提供)等于 1,季节性将被禁用。

  • n_jobs (int 或 float, default = 0.5) – 用于并行拟合模型的 CPU 核心数。设置为 0.0 到 1.0 之间的浮点数时,使用可用 CPU 核心的该比例。设置为正整数时,使用该数量的核心。设置为 -1 时,使用所有 CPU 核心。

  • max_ts_length (int, default = 2500) – 如果非 None,则仅使用每个时间序列的最后 max_ts_length 个时间步来训练模型。这会显著加快拟合速度,并且通常不会导致准确性改变。

class autogluon.timeseries.models.AutoETSModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

自动调优的具有趋势和季节性的指数平滑模型。

使用信息准则自动选择最佳 ETS(误差、趋势、季节性)模型

基于 statsforecast.models.AutoETS

参数:
  • model (str, default = "ZZZ") – 描述 E(误差)、T(趋势)和 S(季节性)模型成分配置的模型字符串。每个成分可以是“M”(乘法)、“A”(加法)或“N”(省略)之一。例如,当 model=”ANN”(加法误差、无趋势、无季节性)时,ETS 将仅探索简单的指数平滑。

  • seasonal_period (int 或 None, default = None) – 季节性模型中一个完整季节周期的时间步数。例如,日数据周周期为 7,月数据年周期为 12。设置为 None 时,将从训练数据的频率推断 seasonal_period。也可以通过提供大于 1 的整数手动指定。如果 seasonal_period(推断或提供)等于 1,季节性将被禁用。

  • damped (bool, default = False) – 是否抑制趋势。

  • n_jobs (int 或 float, default = 0.5) – 用于并行拟合模型的 CPU 核心数。设置为 0.0 到 1.0 之间的浮点数时,使用可用 CPU 核心的该比例。设置为正整数时,使用该数量的核心。设置为 -1 时,使用所有 CPU 核心。

  • max_ts_length (int, default = 2500) – 如果非 None,则仅使用每个时间序列的最后 max_ts_length 个时间步来训练模型。这会显著加快拟合速度,并且通常不会导致准确性改变。

class autogluon.timeseries.models.AutoCESModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

使用复杂指数平滑模型进行预测,其中模型选择使用 Akaike 信息准则 [Svetunkov2022] 进行。

基于 statsforecast.models.AutoCES

参考文献

[Svetunkov2022]

Svetunkov, Ivan, Nikolaos Kourentzes, and John Keith Ord. “Complex exponential smoothing.” Naval Research Logistics (NRL) 69.8 (2022): 1108-1123.

参数:
  • model ({"Z", "N", "S", "P", "F"}, default = "Z") – 定义 CES 模型类型,“N” 表示简单 CES,“S” 表示简单季节性,“P” 表示部分季节性(不含复杂部分),“F” 表示完整季节性。选择“Z”时,使用 Akaike 信息准则 (AIC) 选择最佳模型。

  • seasonal_period (int 或 None, default = None) – 季节性模型中一个完整季节周期的时间步数。例如,日数据周周期为 7,月数据年周期为 12。设置为 None 时,将从训练数据的频率推断 seasonal_period。也可以通过提供大于 1 的整数手动指定。如果 seasonal_period(推断或提供)等于 1,季节性将被禁用。

  • n_jobs (int 或 float, default = 0.5) – 用于并行拟合模型的 CPU 核心数。设置为 0.0 到 1.0 之间的浮点数时,使用可用 CPU 核心的该比例。设置为正整数时,使用该数量的核心。设置为 -1 时,使用所有 CPU 核心。

  • max_ts_length (int, default = 2500) – 如果非 None,则仅使用每个时间序列的最后 max_ts_length 个时间步来训练模型。这会显著加快拟合速度,并且通常不会导致准确性改变。

class autogluon.timeseries.models.ThetaModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

Theta 预测模型 [Assimakopoulos2000]

基于 statsforecast.models.Theta

参考文献

[Assimakopoulos2000]

Assimakopoulos, Vassilis, and Konstantinos Nikolopoulos. “The theta model: a decomposition approach to forecasting.” International journal of forecasting 16.4 (2000): 521-530.

参数:
  • decomposition_type ({"multiplicative", "additive"}, default = "multiplicative") – 季节分解类型。

  • seasonal_period (int 或 None, default = None) – 季节性模型中一个完整季节周期的时间步数。例如,日数据周周期为 7,月数据年周期为 12。设置为 None 时,将从训练数据的频率推断 seasonal_period。也可以通过提供大于 1 的整数手动指定。如果 seasonal_period(推断或提供)等于 1,季节性将被禁用。

  • n_jobs (int 或 float, default = 0.5) – 用于并行拟合模型的 CPU 核心数。设置为 0.0 到 1.0 之间的浮点数时,使用可用 CPU 核心的该比例。设置为正整数时,使用该数量的核心。设置为 -1 时,使用所有 CPU 核心。

  • max_ts_length (int, default = 2500) – 如果非 None,则仅使用每个时间序列的最后 max_ts_length 个时间步来训练模型。这会显著加快拟合速度,并且通常不会导致准确性改变。

class autogluon.timeseries.models.NPTSModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

非参数时间序列预测器。

该模型特别适合预测具有许多零值的稀疏或间歇性时间序列。

基于 gluonts.model.npts.NPTSPredictor。有关该模型的更多信息,请参阅 GluonTS 文档。

参数:
  • kernel_type ({"exponential", "uniform"}, default = "exponential") – 模型使用的核函数。

  • exp_kernel_weights (float, default = 1.0) – 指数核函数中使用的缩放因子。

  • use_seasonal_model (bool, default = True) – 是否使用模型的季节性变体。

  • num_samples (int, default = 100) – 预测生成的样本数。

  • num_default_time_features (int, default = 1) – 季节性模型使用的时间特征数。

  • n_jobs (int 或 float, default = 0.5) – 用于并行拟合模型的 CPU 核心数。设置为 0.0 到 1.0 之间的浮点数时,使用可用 CPU 核心的该比例。设置为正整数时,使用该数量的核心。设置为 -1 时,使用所有 CPU 核心。

  • max_ts_length (Optional[int], default = 2500) – 如果非 None,则仅使用每个时间序列的最后 max_ts_length 个时间步来训练模型。这会显著加快拟合速度,并且通常不会导致准确性改变。

稀疏数据的统计模型

专为稀疏和非负数据构建的统计模型,特别适用于间歇需求预测。

class autogluon.timeseries.models.ADIDAModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

使用聚合-分解间歇需求方法 (Aggregate-Dissagregate Intermittent Demand Approach) [Nikolopoulos2011] 的间歇需求预测模型。

基于 statsforecast.models.ADIDA

参考文献

[Nikolopoulos2011]

Nikolopoulos, K., Syntetos, A., Boylan, J. et al. An aggregate–disaggregate intermittent demand approach (ADIDA) to forecasting: an empirical proposition and analysis. J Oper Res Soc 62, 544–554 (2011). https://doi.org/10.1057/jors.2010.32

参数:
  • n_jobs (int 或 float, default = 0.5) – 用于并行拟合模型的 CPU 核心数。设置为 0.0 到 1.0 之间的浮点数时,使用可用 CPU 核心的该比例。设置为正整数时,使用该数量的核心。设置为 -1 时,使用所有 CPU 核心。

  • max_ts_length (int, default = 2500) – 如果非 None,则仅使用每个时间序列的最后 max_ts_length 个时间步来训练模型。这会显著加快拟合速度,并且通常不会导致准确性改变。

class autogluon.timeseries.models.CrostonModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

使用 [Croston1972][SyntetosBoylan2001] 中的 Croston 模型进行间歇需求预测。

参考文献

[Croston1972]

Croston, John D. “Forecasting and stock control for intermittent demands.” Journal of the Operational Research Society 23.3 (1972): 289-303.

[SyntetosBoylan2001]

Syntetos, Aris A., and John E. Boylan. “On the bias of intermittent demand estimates.” International journal of production economics 71.1-3 (2001): 457-466.

参数:
  • variant ({"SBA", "classic", "optimized"}, default = "SBA") –

    使用的 Croston 模型变体。可用选项包括:

  • n_jobs (int 或 float, default = 0.5) – 用于并行拟合模型的 CPU 核心数。设置为 0.0 到 1.0 之间的浮点数时,使用可用 CPU 核心的该比例。设置为正整数时,使用该数量的核心。设置为 -1 时,使用所有 CPU 核心。

  • max_ts_length (int, default = 2500) – 如果非 None,则仅使用每个时间序列的最后 max_ts_length 个时间步来训练模型。这会显著加快拟合速度,并且通常不会导致准确性改变。

class autogluon.timeseries.models.IMAPAModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

使用间歇多重聚合预测算法的间歇需求预测模型 [Petropoulos2015]

基于 statsforecast.models.IMAPA

参考文献

[Petropoulos2015]

Petropoulos, Fotios, and Nikolaos Kourentzes. “Forecast combinations for intermittent demand.” Journal of the Operational Research Society 66.6 (2015): 914-924.

参数:
  • n_jobs (int 或 float, default = 0.5) – 用于并行拟合模型的 CPU 核心数。设置为 0.0 到 1.0 之间的浮点数时,使用可用 CPU 核心的该比例。设置为正整数时,使用该数量的核心。设置为 -1 时,使用所有 CPU 核心。

  • max_ts_length (int, default = 2500) – 如果非 None,则仅使用每个时间序列的最后 max_ts_length 个时间步来训练模型。这会显著加快拟合速度,并且通常不会导致准确性改变。

深度学习模型

深度学习模型使用神经网络来捕捉数据中的复杂模式。

class autogluon.timeseries.models.DeepARModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

基于循环神经网络的自回归预测模型 [Salinas2020]

基于 gluonts.torch.model.deepar.DeepAREstimator。有关其他超参数,请参见 GluonTS 文档。

参考文献

[Salinas2020]

Salinas, David, et al. “DeepAR: Probabilistic forecasting with autoregressive recurrent networks.” International Journal of Forecasting. 2020.

参数:
  • context_length (int, default = max(10, 2 * prediction_length)) – 在计算预测之前,RNN 展开的步数

  • disable_static_features (bool, default = False) – 如果为 True,即使数据集中存在静态特征,模型也不会使用。如果为 False,如果数据集中存在静态特征,模型将使用。

  • disable_known_covariates (bool, default = False) – 如果为 True,即使数据集中存在已知协变量,模型也不会使用。如果为 False,如果数据集中存在已知协变量,模型将使用。

  • num_layers (int, default = 2) – RNN 层数

  • hidden_size (int, default = 40) – 每层 RNN 单元数

  • dropout_rate (float, default = 0.1) – Dropout 正则化参数

  • embedding_dimension (int, optional) – 分类特征嵌入的维度(如果为 None,默认为 [min(50, (cat+1)//2) for cat in cardinality])

  • max_cat_cardinality (int, default = 100) – 对分类已知协变量进行 One-Hot 编码时使用的最大维度数。

  • distr_output (gluonts.torch.distributions.Output, default = StudentTOutput()) – 分布输出对象,定义了模型输出如何转换为预测,以及如何计算损失。

  • scaling (bool, default = True) – 如果为 True,在训练和预测期间,将对每个 上下文窗口 应用平均绝对缩放。请注意,这与应用于 整个时间序列target_scaler 不同。

  • max_epochs (int, default = 100) – 模型训练的 epoch 数

  • batch_size (int, default = 64) – 训练期间使用的批量大小

  • predict_batch_size (int, default = 500) – 预测期间使用的批量大小。

  • num_batches_per_epoch (int, default = 50) – 每个 epoch 处理的批量数

  • lr (float, default = 1e-3,) – 训练期间使用的学习率

  • trainer_kwargs (dict, optional) – 传递给 lightning.Trainer 的可选关键字参数。

  • early_stopping_patience (int or None, default = 20) – 如果验证损失在此数量的 epoch 内没有改善,则提前停止训练。

  • keep_lightning_logs (bool, default = False) – 如果为 True,在模型训练完成后,将 不会 删除 lightning_logs 目录。

class autogluon.timeseries.models.DLinearModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

简单的前馈神经网络,在预测前减去趋势 [Zeng2023]

基于 gluonts.torch.model.d_linear.DLinearEstimator。有关其他超参数,请参见 GluonTS 文档。

参考文献

[Zeng2023]

Zeng, Ailing, et al. “Are transformers effective for time series forecasting?” AAAI Conference on Artificial Intelligence. 2023.

参数:
  • context_length (int, default = 96) – 用于条件化预测的时间单位数

  • hidden_dimension (int, default = 20) – 前馈网络中隐藏层的大小

  • distr_output (gluonts.torch.distributions.Output, default = StudentTOutput()) – 分布输出对象,定义了模型输出如何转换为预测,以及如何计算损失。

  • scaling ({"mean", "std", None}, default = "mean") –

    在训练和预测期间应用于每个 上下文窗口 的缩放。选项包括 "mean" (平均绝对缩放)、"std" (标准化)、None (无缩放)。

    请注意,这与应用于 整个时间序列target_scaler 不同。

  • max_epochs (int, default = 100) – 模型训练的 epoch 数

  • batch_size (int, default = 64) – 训练期间使用的批量大小

  • predict_batch_size (int, default = 500) – 预测期间使用的批量大小。

  • num_batches_per_epoch (int, default = 50) – 每个 epoch 处理的批量数

  • lr (float, default = 1e-3,) – 训练期间使用的学习率

  • trainer_kwargs (dict, optional) – 传递给 lightning.Trainer 的可选关键字参数。

  • early_stopping_patience (int or None, default = 20) – 如果验证损失在此数量的 epoch 内没有改善,则提前停止训练。

  • weight_decay (float, default = 1e-8) – 权重衰减正则化参数。

  • keep_lightning_logs (bool, default = False) – 如果为 True,在模型训练完成后,将 不会 删除 lightning_logs 目录。

class autogluon.timeseries.models.PatchTSTModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

基于 Transformer 的预测器,将每个时间序列分割成片段 [Nie2023]

基于 gluonts.torch.model.d_linear.PatchTSTEstimator。有关其他超参数,请参见 GluonTS 文档。

参考文献

[Nie2023]

Nie, Yuqi, et al. “A Time Series is Worth 64 Words: Long-term Forecasting with Transformers.” International Conference on Learning Representations. 2023.

参数:
  • context_length (int, default = 96) – 用于条件化预测的时间单位数

  • patch_len (int, default = 16) – 片段长度。

  • stride (int, default = 8) – 片段步长。

  • d_model (int, default = 32) – Transformer 编码器中隐藏层的大小。

  • nhead (int, default = 4) – Transformer 编码器中注意力头的数量,必须能整除 d_model。

  • num_encoder_layers (int, default = 2) – Transformer 编码器中的层数。

  • distr_output (gluonts.torch.distributions.Output, default = StudentTOutput()) – 分布输出对象,定义了模型输出如何转换为预测,以及如何计算损失。

  • scaling ({"mean", "std", None}, default = "mean") –

    在训练和预测期间应用于每个 上下文窗口 的缩放。选项包括 "mean" (平均绝对缩放)、"std" (标准化)、None (无缩放)。

    请注意,这与应用于 整个时间序列target_scaler 不同。

  • max_epochs (int, default = 100) – 模型训练的 epoch 数

  • batch_size (int, default = 64) – 训练期间使用的批量大小

  • num_batches_per_epoch (int, default = 50) – 每个 epoch 处理的批量数

  • lr (float, default = 1e-3,) – 训练期间使用的学习率

  • weight_decay (float, default = 1e-8) – 权重衰减正则化参数。

  • keep_lightning_logs (bool, default = False) – 如果为 True,在模型训练完成后,将 不会 删除 lightning_logs 目录。

class autogluon.timeseries.models.SimpleFeedForwardModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

同时预测所有未来值的简单前馈神经网络。

基于 gluonts.torch.model.simple_feedforward.SimpleFeedForwardEstimator。有关其他超参数,请参见 GluonTS 文档。

参数:
  • context_length (int, default = max(10, 2 * prediction_length)) – 用于条件化预测的时间单位数

  • hidden_dimensions (List[int], default = [20, 20]) – 前馈网络中隐藏层的大小

  • distr_output (gluonts.torch.distributions.Output, default = StudentTOutput()) – 分布输出对象,定义了模型输出如何转换为预测,以及如何计算损失。

  • batch_normalization (bool, default = False) – 是否使用批量归一化

  • mean_scaling (bool, default = True) – 如果为 True,在训练和预测期间,将对每个 上下文窗口 应用平均绝对缩放。请注意,这与应用于 整个时间序列target_scaler 不同。

  • max_epochs (int, default = 100) – 模型训练的 epoch 数

  • batch_size (int, default = 64) – 训练期间使用的批量大小

  • predict_batch_size (int, default = 500) – 预测期间使用的批量大小。

  • num_batches_per_epoch (int, default = 50) – 每个 epoch 处理的批量数

  • lr (float, default = 1e-3,) – 训练期间使用的学习率

  • trainer_kwargs (dict, optional) – 传递给 lightning.Trainer 的可选关键字参数。

  • early_stopping_patience (int or None, default = 20) – 如果验证损失在此数量的 epoch 内没有改善,则提前停止训练。

  • keep_lightning_logs (bool, default = False) – 如果为 True,在模型训练完成后,将 不会 删除 lightning_logs 目录。

class autogluon.timeseries.models.TemporalFusionTransformerModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

结合 LSTM 和 Transformer 层来预测所有未来目标值的分位数 [Lim2021]

基于 gluonts.torch.model.tft.TemporalFusionTransformerEstimator。有关其他超参数,请参见 GluonTS 文档。

参考文献

[Lim2021]

Lim, Bryan, et al. “Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting.” International Journal of Forecasting. 2021.

参数:
  • context_length (int, default = max(64, 2 * prediction_length)) – 用于预测的过去值数量。

  • distr_output (gluonts.torch.distributions.Output, default = QuantileOutput()) – 分布输出对象,定义了模型输出如何转换为预测,以及如何计算损失。

  • disable_static_features (bool, default = False) – 如果为 True,即使数据集中存在静态特征,模型也不会使用。如果为 False,如果数据集中存在静态特征,模型将使用。

  • disable_known_covariates (bool, default = False) – 如果为 True,即使数据集中存在已知协变量,模型也不会使用。如果为 False,如果数据集中存在已知协变量,模型将使用。

  • disable_past_covariates (bool, default = False) – 如果为 True,即使数据集中存在过去协变量,模型也不会使用。如果为 False,如果数据集中存在过去协变量,模型将使用。

  • hidden_dim (int, default = 32) – LSTM 和 Transformer 隐藏状态的大小。

  • variable_dim (int, default = 32) – 特征嵌入的大小。

  • num_heads (int, default = 4) – 解码器中自注意力层中注意力头的数量。

  • dropout_rate (float, default = 0.1) – Dropout 正则化参数

  • max_epochs (int, default = 100) – 模型训练的 epoch 数

  • batch_size (int, default = 64) – 训练期间使用的批量大小

  • predict_batch_size (int, default = 500) – 预测期间使用的批量大小。

  • num_batches_per_epoch (int, default = 50) – 每个 epoch 处理的批量数

  • lr (float, default = 1e-3,) – 训练期间使用的学习率

  • trainer_kwargs (dict, optional) – 传递给 lightning.Trainer 的可选关键字参数。

  • early_stopping_patience (int or None, default = 20) – 如果验证损失在此数量的 epoch 内没有改善,则提前停止训练。

  • keep_lightning_logs (bool, default = False) – 如果为 True,在模型训练完成后,将 不会 删除 lightning_logs 目录。

class autogluon.timeseries.models.TiDEModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

来自 [Das2023] 的时间序列密集编码器模型。

基于 gluonts.torch.model.tide.TiDEEstimator。有关其他超参数,请参见 GluonTS 文档。

参考文献

[Das2023]

Das, Abhimanyu, et al. “Long-term Forecasting with TiDE: Time-series Dense Encoder.” Transactions of Machine Learning Research. 2023.

参数:
  • context_length (int, default = max(64, 2 * prediction_length)) – 用于预测的过去值数量。

  • disable_static_features (bool, default = False) – 如果为 True,即使数据集中存在静态特征,模型也不会使用。如果为 False,如果数据集中存在静态特征,模型将使用。

  • disable_known_covariates (bool, default = False) – 如果为 True,即使数据集中存在已知协变量,模型也不会使用。如果为 False,如果数据集中存在已知协变量,模型将使用。

  • feat_proj_hidden_dim (int, default = 4) – 特征投影层的大小。

  • encoder_hidden_dim (int, default = 64) – 密集编码器层的大小。

  • decoder_hidden_dim (int, default = 64) – 密集解码器层的大小。

  • temporal_hidden_dim (int, default = 64) – 时间解码器层的大小。

  • distr_hidden_dim (int, default = 64) – 分布投影层的大小。

  • num_layers_encoder (int, default = 2) – 密集编码器中的层数。

  • num_layers_decoder (int, default = 2) – 密集解码器中的层数。

  • decoder_output_dim (int, default = 16) – 密集解码器的输出大小。

  • dropout_rate (float, default = 0.2) – Dropout 正则化参数。

  • num_feat_dynamic_proj (int, default = 2) – 特征投影层的输出大小。

  • embedding_dimension (int, default = [16] * num_feat_static_cat) – 分类特征嵌入的维度。

  • layer_norm (bool, default = True) – 是否启用层归一化?

  • scaling ({"mean", "std", None}, default = "mean") –

    在训练和预测期间应用于每个 上下文窗口 的缩放。选项包括 "mean" (平均绝对缩放)、"std" (标准化)、None (无缩放)。

    请注意,这与应用于 整个时间序列target_scaler 不同。

  • max_epochs (int, default = 100) – 模型训练的 epoch 数

  • batch_size (int, default = 256) – 训练期间使用的批量大小

  • predict_batch_size (int, default = 500) – 预测期间使用的批量大小。

  • num_batches_per_epoch (int, default = 50) – 每个 epoch 处理的批量数

  • lr (float, default = 1e-4,) – 训练期间使用的学习率

  • trainer_kwargs (dict, optional) – 传递给 lightning.Trainer 的可选关键字参数。

  • early_stopping_patience (int or None, default = 20) – 如果验证损失在此数量的 epoch 内没有改善,则提前停止训练。

  • keep_lightning_logs (bool, default = False) – 如果为 True,在模型训练完成后,将 不会 删除 lightning_logs 目录。

class autogluon.timeseries.models.WaveNetModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

WaveNet 估计器,使用了 [Oord2016] 中提出的具有量化目标的架构。

该模型基于具有扩张卷积的 CNN 架构。时间序列值被量化到桶中,模型使用交叉熵损失进行训练。

基于 gluonts.torch.model.wavenet.WaveNetEstimator。有关其他超参数,请参见 GluonTS 文档。

参考文献

[Oord2016]

Oord, Aaron van den, et al. “Wavenet: A generative model for raw audio” arXiv preprint arXiv:1609.03499. 2016.

参数:
  • num_bins (int, default = 1024) – 用于时间序列量化的桶数。

  • num_residual_channels (int, default = 24) – WaveNet 架构中的残差通道数。

  • num_skip_channels (int, default = 32) – WaveNet 架构中的跳跃通道数,默认为 32。

  • dilation_depth (int or None, default = None) – WaveNet 架构中的扩张层数。如果设置为 None(默认),则根据 seasonality 确定 dilation_depth,使其感受野长度至少与 seasonality 一样长,并且至少为 2 * prediction_length

  • num_stacks (int, default = 1) – WaveNet 架构中的扩张堆栈数。

  • temperature (float, default = 1.0) – 用于从 Softmax 分布中采样时的温度。

  • seasonality (int, optional) – 时间序列的季节性。默认为根据数据的 freq 设置。

  • embedding_dimension (int, default = 5) – 分类特征嵌入的维度。

  • use_log_scale_feature (bool, default = True) – 如果为 True,将使用过去数据尺度的对数作为附加静态特征。

  • negative_data (bool, default = True) – 指示时间序列是否包含负值的标志。

  • max_cat_cardinality (int, default = 100) – 对分类已知协变量进行 One-Hot 编码时使用的最大维度数。

  • max_epochs (int, default = 100) – 模型训练的 epoch 数

  • batch_size (int, default = 64) – 训练期间使用的批量大小

  • predict_batch_size (int, default = 500) – 预测期间使用的批量大小。

  • num_batches_per_epoch (int, default = 50) – 每个 epoch 处理的批量数

  • lr (float, default = 1e-3,) – 训练期间使用的学习率

  • trainer_kwargs (dict, optional) – 传递给 lightning.Trainer 的可选关键字参数。

  • early_stopping_patience (int or None, default = 20) – 如果验证损失在此数量的 epoch 内没有改善,则提前停止训练。

  • weight_decay (float, default = 1e-8) – 权重衰减正则化参数。

  • keep_lightning_logs (bool, default = False) – 如果为 True,在模型训练完成后,将 不会 删除 lightning_logs 目录。

表格模型

表格模型将时间序列预测转换为表格回归问题。

class autogluon.timeseries.models.DirectTabularModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

使用 AutoGluon-Tabular 中的 TabularPredictor 同时预测所有未来时间序列值。

使用单个 TabularPredictor 来预测所有未来时间序列值,并使用以下特征:

  • 基于数据 freq 的滞后特征(观测到的时间序列值)

  • 基于测量时间戳的时间特征(例如,星期几)

  • 已知协变量(如果可用)

  • 每个项目的静态特征(如果可用)

在预测期内未知的特征(例如,未来目标值)将被替换为 NaN。

如果 eval_metric.needs_quantile 为 True,则 TabularPredictor 将使用 "quantile" 问题类型进行训练。否则,TabularPredictor 将使用 "regression" 问题类型进行训练,并通过假设残差服从零均值正态分布来获得虚拟分位数。

基于 mlforecast 库。

参数:
  • lags (List[int], default = None) – 将用作预测特征的目标滞后值。如果为 None,将根据数据的频率自动确定。

  • date_features (List[Union[str, Callable]], default = None) – 从日期计算的特征。可以是 pandas 日期属性或将日期作为输入的函数。如果为 None,将根据数据的频率自动确定。

  • differences (List[int], default = []) – 在计算特征之前对目标进行的差分。这些在预测步骤中恢复。如果为 None,将设置为 [seasonal_period],其中 seasonal_period 根据数据频率确定。默认为不进行差分。

  • target_scaler ({"standard", "mean_abs", "min_max", "robust", None}, default = "mean_abs") – 应用于每个时间序列的缩放。缩放在差分后应用。

  • tabular_hyperparameters (Dict[Dict[str, Any]], optional) – 传递给 TabularPredictor.fit 的超参数字典。包含应拟合的模型名称。默认为 {"GBM": {}}

  • tabular_fit_kwargs (Dict[str, Any], optional) – 传递给 TabularPredictor.fit 的附加关键字参数。默认为空字典。

  • max_num_items (int or None, default = 20_000) – 如果不为 None,模型将随机选择此数量的时间序列进行训练和验证。

  • max_num_samples (int or None, default = 1_000_000) – 如果不为 None,传递给 TabularPredictor 的训练数据集将最多包含此数量的行(从每个时间序列的末尾开始)。

class autogluon.timeseries.models.RecursiveTabularModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | TimeSeriesScorer | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

使用 AutoGluon-Tabular 中的 TabularPredictor 逐一预测未来时间序列值。

使用单个 TabularPredictor 来预测未来时间序列值,并使用以下特征:

  • 基于数据 freq 的滞后特征(观测到的时间序列值)

  • 基于测量时间戳的时间特征(例如,星期几)

  • 已知协变量(如果可用)

  • 每个项目的静态特征(如果可用)

TabularPredictor 将始终使用 "regression" 问题类型进行训练,并通过假设残差服从零均值正态分布来获得虚拟分位数。

基于 mlforecast 库。

参数:
  • lags (List[int], default = None) – 将用作预测特征的目标滞后值。如果为 None,将根据数据的频率自动确定。

  • date_features (List[Union[str, Callable]], default = None) – 从日期计算的特征。可以是 pandas 日期属性或将日期作为输入的函数。如果为 None,将根据数据的频率自动确定。

  • differences (List[int], default = None) – 在计算特征之前对目标进行的差分。这些在预测步骤中恢复。如果为 None,将设置为 [seasonal_period],其中 seasonal_period 根据数据频率确定。

  • target_scaler ({"standard", "mean_abs", "min_max", "robust", None}, default = "standard") – 应用于每个时间序列的缩放。缩放在差分后应用。

  • tabular_hyperparameters (Dict[Dict[str, Any]], optional) – 传递给 TabularPredictor.fit 的超参数字典。包含应拟合的模型名称。默认为 {"GBM": {}}

  • tabular_fit_kwargs (Dict[str, Any], optional) – 传递给 TabularPredictor.fit 的附加关键字参数。默认为空字典。

  • max_num_items (int or None, default = 20_000) – 如果不为 None,模型将随机选择此数量的时间序列进行训练和验证。

  • max_num_samples (int or None, default = 1_000_000) – 如果不为 None,传递给 TabularPredictor 的训练数据集将最多包含此数量的行(从每个时间序列的末尾开始)。

预训练模型

在大型时间序列数据集上预训练的深度学习模型,能够执行零样本预测。

class autogluon.timeseries.models.ChronosModel(freq: str | None = None, prediction_length: int = 1, path: str | None = None, name: str | None = None, eval_metric: str | None = None, hyperparameters: Dict[str, Any] | None = None, **kwargs)[source]

Chronos [Ansari2024] 预训练时间序列预测模型,可用于零样本预测或以任务特定的方式进行微调。模型可以基于原始的 ChronosModel 实现,以及能够实现更快推理的新一代 Chronos-Bolt 模型。

原始 Chronos 是一系列预训练模型,基于 T5 系列,参数数量在 8M 到 710M 之间。Chronos 模型的完整集合可在 Hugging Face 上获取。对于 Chronos 的 small、base 和 large 变体,高效推理需要 GPU。Chronos 采用极简方法预训练时间序列模型,通过将时间序列数据直接离散化为桶,并将这些桶视为 token,有效地通过分类执行回归。这为在时间序列预测中使用任何语言模型提供了一个简单灵活的框架。有关更多信息,请参阅 [Ansari2024]

新的 Chronos-Bolt 变体通过首先“分块”时间序列来实现更快的推理。然后将生成的时间序列输入到 T5 模型进行预测。Chronos-Bolt 变体能够实现更快的推理,并且都可以在 CPU 上运行。Chronos-Bolt 模型也可在 Hugging Face https://hugging-face.cn/autogluon/ 上获取。

通过设置 fine_tune=True 并选择适当的微调参数(例如学习率 fine_tune_lr 和最大步数 fine_tune_steps),可以对 Chronos 和 Chronos-Bolt 变体进行微调。

参考文献

[Ansari2024]

Ansari, Abdul Fatir, Stella, Lorenzo et al. “Chronos: Learning the Language of Time Series.” http://arxiv.org/abs/2403.07815

参数:
  • model_path (str, default = "autogluon/chronos-bolt-small") – 用于模型的模型路径,即 HuggingFace transformers 的 name_or_path。可以是 HuggingFace Hub 上兼容的模型名称或本地模型目录的路径。原始 Chronos 模型(即 autogluon/chronos-t5-{model_size})可以使用别名 tinyminismallbaselarge 指定。Chronos-Bolt 模型可以使用 bolt_tinybolt_minibolt_smallbolt_base 指定。

  • batch_size (int, default = 16) – 推理期间使用的批量大小

  • num_samples (int, default = 20) – 推理期间使用的样本数量,仅用于原始 Chronos 模型

  • device (str, default = None) – 用于推理(以及微调,如果启用)的设备。如果为 None,如果可用,模型将使用 GPU。对于较大的 Chronos 模型尺寸 smallbaselarge;如果无 GPU 可用,推理将失败。对于 Chronos-Bolt 模型,可以在 CPU 上进行推理。尽管允许在 CPU 上微调较小的 Chronos 模型(tinymini)和所有 Chronos-Bolt 模型,但我们建议使用 GPU 以实现更快的微调。

  • context_length (int or None, default = None) – 模型中使用的上下文长度。较短的上下文长度会降低模型精度,但会加快推理速度。如果为 None,模型将在推理时根据数据集长度推断上下文长度,但最大设置为 2048。请注意,这仅是用于将数据传递到模型的上下文长度。单个模型实现可能在其配置中指定了不同的上下文长度,并可能进一步截断上下文。例如,原始 Chronos 模型的上下文长度为 512,而 Chronos-Bolt 模型处理的上下文长度可达 2048。

  • optimization_strategy ({None, "onnx", "openvino"}, default = None) – [已弃用] 用于在 CPU 上进行推理的优化策略。如果为 None,模型将使用默认实现。如果为 onnx,模型将转换为 ONNX,推理将使用 ONNX 执行。如果为 openvino,推理将使用编译到 OpenVINO 的模型执行。这些优化仅适用于原始 Chronos 模型,不适用于不需要它们的 Chronos-Bolt 模型。您需要安装相应的依赖项 optimum[onnxruntime]optimum[openvino,nncf] optimum-intel[openvino,nncf] 才能使优化生效。请注意,对优化策略的支持已弃用,并将在未来的版本中移除。我们建议使用 Chronos-Bolt 模型以在 CPU 上实现快速推理。

  • torch_dtype (torch.dtype or {"auto", "bfloat16", "float32", "float64"}, default = "auto") – 用于模型权重的 Torch 数据类型,提供给 Hugging Face AutoModels 的 from_pretrained 方法。如果指定了原始 Chronos 模型且模型尺寸为 smallbaselargetorch_dtype 将设置为 bfloat16 以实现在 GPU 上的推理。

  • data_loader_num_workers (int, default = 0) – 数据加载器中使用的 Worker 进程数。有关更多信息,请参阅 torch.utils.data.DataLoader 的文档。

  • fine_tune (bool, default = False) – 如果为 True,将对预训练模型进行微调

  • fine_tune_lr (float, default = 1e-5) – 微调使用的学习率。此默认值适用于 Chronos-Bolt 模型;对于原始 Chronos 模型,我们建议使用更高的学习率,例如 1e-4

  • fine_tune_steps (int, default = 1000) – 微调的梯度更新步数

  • fine_tune_batch_size (int, default = 32) – 微调使用的批量大小

  • fine_tune_shuffle_buffer_size (int, default = 10000) – 微调期间用于打乱数据的数据缓冲区大小。如果为 None,将关闭打乱。

  • eval_during_fine_tune (bool, default = False) – 如果为 True,微调期间将执行验证以选择最佳检查点。将此参数设置为 True 可能会导致微调速度变慢。

  • fine_tune_eval_max_items (int, default = 256) – 微调期间用于验证的最大随机采样时间序列数量。如果为 None,将使用整个验证数据集。

  • fine_tune_trainer_kwargs (dict, optional) – 传递给 transformers.TrainingArguments 的额外关键字参数

  • keep_transformers_logs (bool, default = False) – 如果为 True,微调后 不会 删除由 transformers 生成的日志。

所有模型共享的超参数

  • target_scaler ({“standard”, “mean_abs”, “robust”, “min_max”, None}, default = None) - 如果提供,每个时间序列在传递给模型进行训练/预测之前将被缩放为 (y - loc) / scale。逆变换 y * scale + loc 将应用于预测结果。

    请注意,locscale 是针对每个单独的时间序列分别计算的。

    可用选项:

    • "standard" - 标准缩放器,loc = mean(y), scale = std(y)

    • "mean_abs" - 平均绝对值缩放器,loc = 0, scale = mean(abs(y))

    • "robust" - 鲁棒缩放器,loc = median(y), scale = quantile(y, 0.75) - quantile(y, 0.25)

    • "min_max" - 将数据转换到 (0, 1) 范围的最小-最大缩放器,loc = min(y), scale = max(y) - min(y)

    • None - 不进行缩放

  • covariate_scaler ({“global”, None}) - 如果提供,所选的缩放方法将应用于协变量和静态特征,然后再拟合模型。

    这种缩放对于假设输入已被归一化的深度学习模型会有所帮助。

    可用选项:

    • "global" - 对偏斜特征使用 QuantileTransform,对布尔特征使用直通,对其余特征使用 StandardScaler

    • None - 不对协变量进行缩放

    默认情况下,对于 GluonTS 模型,此参数设置为 "global",对于所有其他模型,设置为 None

  • covariate_regressor ({“LR”, “GBM”, “CAT”, “XGB”, “RF”, None}, default = None) - 如果提供,所选的表格回归模型将根据已知协变量和静态特征进行拟合,以预测同一时间步的目标列。

    回归模型的预测结果将从目标列中减去,然后使用预测模型来预测残差。

    在预测时,回归模型的预测结果将加到预测模型的预测结果中。

    如果启用 covariate_regressor,建议也启用 target_scaler。这通常会带来更高的精度和更快的回归器拟合时间。

    如果同时提供了 target_scalercovariate_regressor,则缩放将在应用回归器之前执行。

MXNet 模型

来自 GluonTS 的 MXNet 模型已被弃用,原因在于 MXNet 导致的依赖冲突。

附加特征

不同模型支持的附加特征和协变量概览。此表中未包含的模型目前不支持任何附加特征。

模型

静态特征(连续 + 分类)

已知协变量(连续 + 分类)

过去协变量(连续 + 分类)

DirectTabularModel

RecursiveTabularModel

DeepARModel

PatchTSTModel

TemporalFusionTransformerModel

TiDEModel

WaveNetModel

除了上表之外,如果在 AutoGluon 中设置了 covariate_regressor 超参数,所有模型都可以处理已知协变量和静态特征。请注意,这有时可能导致预测精度下降,特别是如果特征信息量不高。