这些实现详细信息描述了特定于 AutoAI 时间序列试验的阶段和处理。
实现详细信息
请参阅时间序列试验的这些实现和配置详细信息。
- 时间序列阶段(用于处理试验)。
- 时间序列优化度量 ,用于调整管道。
- 用于构建管道的 时间序列算法 。
- 支持的日期和时间格式。
时间序列阶段
在运行试验时,AutoAI 时间序列试验包括以下阶段:
阶段 1: 初始化
“初始化”阶段按以下顺序处理训练数据:
- 加载数据
- 将数据集 L 拆分为训练数据 T 和保留数据 H
- 设置验证,时间戳记列处理和回看窗口生成。 注:
- 训练数据 (T) 等于数据集 (L) 减去保留数据 (H)。 配置试验时,可以调整保留数据的大小。 缺省情况下,保留数据的大小为 20 个步骤。
- 您可以选择指定时间戳记列。
- 缺省情况下,通过使用信号处理方法检测季节性周期来自动生成回顾窗口。 但如果您知道相应的回顾窗口,那么可以直接指定该值。
阶段 2: 管道选择
管道选择步骤使用名为 T-Daub (使用上限的时间序列数据分配) 的高效方法。 该方法通过将更多训练数据分配给最有希望的管道来选择管道,而将更少训练数据分配给没有希望的管道。 这样,并不是所有管道都能看到完整的数据集,选择过程通常更快。 以下步骤描述了过程概述:
- 所有管道都按顺序分配了训练数据的几个小子集。 首先分配最新数据。
- 每个管道都在每个已分配的训练数据子集上进行训练,并使用测试数据 (保留数据) 进行评估。
- 通过使用上一步中描述的数据集,将线性回归模型应用于每个管道。
- 管道的准确性分数将投影到整个训练数据集上。 此方法将生成一个数据集,其中包含每个管道的已分配数据的准确性和大小。
- 根据预测的准确性和分配的排名 1 来选择最佳管道。
- 将更多数据分配给最佳管道。 然后,将更新其他管道的预计准确性。
- 重复前两个步骤,直到针对所有数据训练前 N 个管道。
阶段 3: 模型评估
在此步骤中,将在整个训练数据集 T上重新训练获胜管道 N 。 此外,将使用保留数据 H对它们进行求值。
阶段 4: 最终管道生成
在此步骤中,将基于整个数据集 (L) 训练获胜的管道并由此生成最终管道。
当每个管道的重新培训完成时,会将该管道发布到排行榜。 您可以选择检查管道详细信息或将管道另存为模型。
阶段 5: 退格测试
在最后一步中,使用回测方法对获胜的管道进行重新训练和评估。 以下步骤描述了回测方法:
- 根据回测数、间隔长度和保留大小来确定训练数据长度。 要了解有关这些参数的更多信息,请参阅 构建时间序列试验。
- 从最旧的数据开始,使用训练数据来训练实验。
- 此外,在第一个验证数据集上对实验进行评估。 如果间隔长度非零,那么将跳过该间隔中的任何数据。
- 训练数据窗口通过增加保持大小和间隔长度来推进,以形成新的训练集。
- 将使用此新数据训练新实验,并使用下一个验证数据集进行评估。
- 对于剩余的回测周期,将重复前两个步骤。
时间序列优化指标
接受缺省指标,或选择要为试验优化的指标。
度量 | 描述 |
---|---|
对称平均绝对百分比误差 (SMAPE) | 在每个拟合点,实际值与预测值之间的绝对差除以绝对实际值与预测值之和的一半。 然后,计算所有拟合点的所有此类值的平均值。 |
平均绝对误差 (MAE) | 实际值与预测值之间绝对差值的平均值。 |
均方根误差 (RMSE) | 实际值与预测值之间的平方差均值的平方根。 |
R2 | 模型性能的度量与基线模型(即平均模型)的对比。 R2 必须等于或小于 1。 负 R2 值表示所考虑的模型比平均值模型差。 零 R2 值表示所考虑的模型与平均值模型一样好或坏。 正 R2 值表示所考虑的模型优于均值模型。 |
查看试验的度量值
查看时间序列试验的结果时,您会看到用于在管道排行榜中训练该试验的度量值:
您可以看到,根据评估的实验数据,时间序列实验的准确性度量可能有很大差异。
- 验证是根据训练数据计算的分数。
- Holdout 是根据保留的 holdout 数据计算的分数。
- 回测是来自所有回测分数的平均分数。
时间序列算法
以下算法可用于时间序列试验。 您可以使用缺省情况下选择的算法,也可以配置试验以包含或排除特定算法。
算法 | 描述 |
---|---|
ARIMA | 自回归集成移动平均值 (ARIMA) 模型是典型的时间序列模型,它可以通过差分将非固定数据转换为固定数据,然后使用过去的值 (包括滞后的值和滞后的预测误差) 来预测下一个值 |
BATS | BATS 算法结合了盒式-考克斯变换、ARMA 残差、趋势和季节性因子来预测未来值。 |
整体法 | 整体法将多种预测方法相结合,以克服简单预测的准确度问题,以及避免可能的过度拟合。 |
Holt-Winters | 如果序列随时间 (季节性) 重复,那么使用三重指数平滑法来预测序列中的数据点。 提供有两类 Holt-Winters 模型:加性 Holt-Winters 和乘性 Holt-Winters |
随机林 | 基于树的回归模型,其中整体中的每个树都是根据从训练集中使用替换项 (例如, bootstrap 样本) 绘制的样本构建的。 |
支持向量机 (SVM) | SVM 是一种可用于回归和分类的机器学习模型。 SVM 使用超平面将数据划分为不同的类。 |
线性回归 | 构建时间序列变量与日期/时间或时间索引之间的线性关系,其残差遵循 AR 过程。 |
支持的日期和时间格式
时间序列实验中支持的日期/时间格式基于 dateutil提供的定义。
受支持的日期格式为:
常见格式:
YYYY
YYYY-MM, YYYY/MM, or YYYYMM
YYYY-MM-DD or YYYYMMDD
mm/dd/yyyy
mm-dd-yyyy
JAN YYYY
不常见格式:
YYYY-Www or YYYYWww - ISO week (day defaults to 0)
YYYY-Www-D or YYYYWwwD - ISO week and day
ISO 周值和日值的数字遵循与 datetime.date.isocalendar() 相同的逻辑。
受支持的时间格式为:
hh
hh:mm or hhmm
hh:mm:ss or hhmmss
hh:mm:ss.ssssss (Up to 6 sub-second digits)
dd-MMM
yyyy/mm
注:
- 午夜可以表示为 00:00 或 24:00。 十进制分隔符可以是句点或逗号。
- 可以将日期作为字符串提交,并使用双引号,例如 "1958-01-16"。
支持特征
支持特征 (也称为外源特征) 是可以影响预测目标的输入特征。 您可以使用支持功能来包含数据集中的其他列,以改进预测并提高模型的准确性。 例如,在用于预测一段时间内的价格的时间序列试验中,支持功能可能是有关销售和促销的数据。 或者,在预测能耗的模型中,包括每日温度使预测更准确。
使用支持功能的算法和管道
只有部分算法允许支持功能。 例如, Holt-winters 和 BATS 不支持使用支持功能。 不支持支持功能部件的算法将忽略您在运行试验时选择的支持功能部件。
某些算法对算法的某些变体使用支持功能,但对其他算法不使用支持功能。 例如,您可以使用随机森林算法生成两种不同的管道,即RandomForestRegressor和ExogenousRandomForestRegressor。 ExogenousRandomForestRegressor变体支持辅助特征,而RandomForestRegressor不支持辅助特征。
此表详细说明算法是否支持时间序列试验中的支持功能部件:
算法 | 管道 | 为支持功能部件提供支持 |
---|---|---|
随机森林 | RandomForestRegressor | False |
随机森林 | ExogenousRandomForestRegressor | 是 |
SVM | SVM | False |
SVM | ExogenousSVM | 是 |
整体法 | LocalizedFlattenEnsembler | 是 |
整体法 | DifferenceFlattenEnsembler | False |
整体法 | FlattenEnsembler | False |
整体法 | ExogenousLocalizedFlattenEnsembler | 是 |
整体法 | ExogenousDifferenceFlattenEnsembler | 是 |
整体法 | ExogenousFlattenEnsembler | 是 |
回归 | MT2RForecaster | False |
回归 | ExogenousMT2RForecaster | 是 |
Holt-Winters | HoltWinterAdditive | False |
Holt-Winters | HoltWinterMultiplicative | False |
BATS | BATS | False |
ARIMA | ARIMA | False |
ARIMA | ARIMAX | 是 |
ARIMA | ARIMAX_RSAR | 是 |
ARIMA | ARIMAX_PALR | 是 |
ARIMA | ARIMAX_RAR | 是 |
ARIMA | ARIMAX_DMLR | 是 |
了解更多信息
父主题: 构建时间序列试验