通过 LSTM 或 XGBoost 进行预测……这真的是预测还是

数据挖掘 lstm xgboost 预测 有马
2021-09-25 16:21:56

我想我理解通过 LSTM 或 XGBoost 模型进行预测的想法,但想与社区联系以确认我的想法。

本教程很好地逐步解释了要做什么:“如何开发多步 LSTM 时间序列预测模型以用于电力使用

但是,在进行预测时,作者保留了部分数据,然后使用该数据来预测未来值……在我看来,这并不是真正的预测(通过 ARIMA、VAR 等完成的事情-在其中您指定时间段数,然后不指定任何其他内容,该模型为您提供了对未来的一些预测)您可以看到我对作者的评论,基本上通过 LSTM 或 XGBoost 模型的预测将基于输入值而不是未来的数据范围,即我需要提供温度、湿度、风等来预测家庭的电力消耗。

话虽这么说,LSTM 或 GXBoost 在什么范围内用于预测?给定这些值,预测最终结果是什么?因此,如果我需要预测未来的某些事情并且对其他输入值一无所知,就坚持传统的 VAR 模型?

通过查看@Fnguyen 的这个问题/答案,“如果您有更多输入变量,您需要一种预测或估算这些变量的方法,因为要进行预测,您的模型需要构建模型的所有输入。”看来我应该使用 ARIMA预测其他输入值然后才使用 LSTM ......让我想知道现在预测是否会那么准确,因为它依赖于 ARIMA 来预测 LSTM 输入的未来值,然后是 LSTM 模型来进行最终预测。再说一次,当我们试图预测未来时,准确的预测是相当复杂的事情。

2个回答

但是,在进行预测时,作者保留了部分数据,然后使用该数据来预测未来值……在我看来,这并不是真正的预测(通过 ARIMA、VAR 等完成的事情——其中您指定时间段的数量,然后不指定任何其他内容,该模型为您提供了对未来的一些预测)

一般来说,我认为“预测”一词可以适用于任何目标是预测未来事件/价值的问题。

您正在描述一个称为“单变量时间序列预测”的预测问题的子类。在单变量时间序列预测的典型案例中,模型使用目标变量的历史观测值来构建。ARIMA 和 VAR 模型通常用于这些问题。(尽管这些模型几乎总是有多元扩展。)

还有“多变量时间序列预测”,其中时间序列包括多个时间相关变量,每个变量可能取决于其过去值和其他变量的过去/现在值。天气预报就是这类问题的一个很好的例子。

[LSTM 或 XGBoost 在多大程度上用于预测?

正如您正确指出的那样,XGBoost 之类的模型仅在您有其他输入而不是目标的历史观察的情况下才有用。(LSTMs 实际上可以在有或没有额外输入的情况下使用。)

很难 确定 XGBoost 或任何其他模型在行业中的普遍程度,但有 大量关于 外生 输入预测 研究

我曾经参与过一个项目,其目标是预测太阳能农场的太阳辐照度。自然,太阳辐照度有很大的季节性变化。但云量、雾和温度等局部天气条件对辐照度的影响也很大,因此单变量模型是不够的。

我们训练了 XGBoost、随机森林、SVM 和深度学习模型来预测未来的辐照度。这些模型的输入是来自 NOAA 的数值天气模型之一的预测天气变量,我认为这是一种非常常见的方法。

[如果] 我需要预测未来的某事,而对其他输入值一无所知,就坚持传统的 VAR 模型?

是的,如果您没有关于其他变量的任何信息,那么您将受限于单变量时间序列方法。但是,即使您不知道其他输入是否有 100% 的把握,您也可以找到合理的预测来构建更复杂的模型 :)

答案将取决于域。但是我的猜测是,如果您仅限于单变量方法,那么 RNN 将击败 XGBoost。作为一个数据点,我在具有数百个变量的多时间序列场景中使用 XGBoost 取得了成功。

我建议您直接运行这两个模型,看看哪一个是您的情况下的赢家。