ARIMA 与随机森林

机器算法验证 预测 随机森林 有马
2022-04-03 10:20:13

我们有一些功率负载功能,当然这些功能在很大程度上受到我们需要预测的工作日节奏的驱动,在对该主题进行了一些简单的研究之后,我发现使用 ARIMA 似乎是这里的逻辑/通常方式。然而,一位同事建议随机森林也可以做到这一点,而且工作量要少得多。我知道 RF 在适应事物的能力方面可能有点神奇,就像神经网络一样,我想布丁的证据就是在吃东西。但是这个社区的意见是什么?这是一种可能行不通的幼稚方法,还是值得一试?

2个回答

已经有一段时间了,但这仍然得到了支持。所以 ...

结果,我确实使用了随机森林,而且效果非常好。增强的树甚至做得更好。同样从那以后,我知道其他几个类似的项目也采取了同样的方式,取得了成功,而且很少大惊小怪。虽然 ARIMA 无疑是一种具有杰出历史的强大方法,但在当今世界,集成方法通常会让你更快地到达你想去的地方,但也许缺点是没有对真正发生的事情有太多了解在被子下。

需要注意的一件事是不要只是随机拆分您的训练/测试集并对其进行测试,您必须将其分块,以使测试点不会与训练点(在时间轴上)相匹配。这对于任何具有缓慢变化数据的时间序列都是必要的,否则森林总是会看到几乎与测试点相同的训练点,因此几乎完全适合它,从而给您带来高度误导性的性能,这不会反映看不见的真实生活表现数据。我在第一轮就犯了这个错误,并且对我的模型解释了 90% 以上的变化感到欣喜——大约一天,直到我意识到发生了什么。60% 到 80% 是它真正做到的。

我没有看到随机森林比 ARIMA 工作量少的论点。我会提出射频是更多的工作。

以下是 ARIMA 的过程: 1. 去趋势/转换数据 2. 检验平稳性 3. 运行自相关图 4. 为模型设置参数 5. 如果需要,运行网格搜索 6. 查看 RMSE

以下是随机森林的过程: 1. 您仍然需要转换数据 2. 您仍然需要测试平稳性 3. 您必须考虑创建一堆有用的特征,例如季节、一天中的时间、t-1、 t-7、t-14、拆分周、假期、所有机器学习模型的功能 4. 设置交叉验证(训练、测试) 5. 使用 gridsearch 或 kfold 进行优化 6. 选择参数,然后运行模型 7.看结果