随机森林可以学习时间序列相关性吗?

数据挖掘 时间序列 随机森林
2021-10-09 11:29:32

我们有一个数据集,每行包含一组 N 个工程特征。这些特征实际上是一个时间序列。

我被要求使用它们来训练一个随机森林类型的分类模型。然而,没有努力将特征视为时间序列,例如考虑相关性或季节性。模型公式与加法线性模型相同:y ~ b0 + b1 + b2...b120

领导者坚持认为,随机森林,因为它学习复杂的相互作用,将学习与时间序列的适当相关性。这是正确的吗?

2个回答

随机森林独立处理每一行,因此它会忽略任何类型的时间序列相关性。您可以通过在训练之前对数据进行洗牌来验证这一点,您的模型(除了随机森林的非随机性质)将是相同的。

XGBoost、LightGBM 和 CatBoost 在准确度上几乎总是优于随机森林,并且与随机森林相似。LightGBM 的计算速度也快得多。如果将时间序列特征添加到数据中,它们都会发挥最佳作用。滞后、移动平均线、不同周期数的标准差有助于显着提高准确性。

看看 M5 Forecasting Accuracy Wallmart Kaggle 比赛 ( https://www.kaggle.com/c/m5-forecasting-accuracy )。前 5 名分别是 4 个 LightGBM 模型和 1 个 DeepAR 模型。

第一名,如果我没记错的话,LightGBM 模型的所有其他第一名都有:

  1. 滞后
  2. 移动平均线
  3. 移动标准差
  4. 基于价格的功能

大约 10 年前,获胜的模型是用于分类的随机森林和用于时间序列的指数平滑算法等不同的时间序列算法。但现在没有任何一个获胜的解决方案使用随机森林。并且提升算法从特征工程中获得了显着的收益。

在我看来,这种特征工程是几年前的一项新发展,当您拥有额外的外部数据(如价格)时,它允许树算法击败简单甚至更复杂的通常时间序列算法。这也应该适用于随机森林。

我在一家咨询公司全职担任数据科学家,进行需求预测以改善供应链流程。我与大约 6 个客户一起创建需求预测,我曾经与竞争对手竞争最佳准确性并获胜。