gpt4 book ai didi

time-series - 将随机森林用于时间序列数据集

转载 作者:行者123 更新时间:2023-12-02 01:33:48 27 4
gpt4 key购买 nike

对于时间序列数据集,我想做一些分析并创建预测模型。通常,我们会将数据(通过在整个数据集中随机抽样)拆分为训练集和测试集,并使用带有 randomForest 函数的训练集。并保留测试部分以检查模型的行为。

但是,有人告诉我,时间序列数据无法通过随机抽样来拆分数据。

如果有人解释如何将数据拆分为时间序列数据的训练和测试,我将不胜感激。或者如果有任何替代方法来做时间序列随机森林。问候

最佳答案

我们生活在一个“ future 与过去的因果关系”只出现在炫酷的科幻电影中的世界。因此,在对时间序列建模时,我们希望避免用 future 事件来解释过去事件。此外,我们还想验证我们的模型是否能够根据过去的事件进行严格训练,从而解释 future 的事件。

使用 RF 滚动对时间序列 T 进行建模。对于第 t 天,值 T[t] 是目标值 T[t-k],其中 k= {1,2,...,h},其中 h 是过去的地平线,将用于形成特征。对于非平稳时间序列,T 被转换为例如相对改变Trel。 = (T[t+1]-T[t])/T[t].

为了评估性能,我建议检查 RF 的袋外交叉验证措施。请注意,有一些陷阱可能会使该指标过于乐观:

  1. 过去污染的未知 future - 不知何故滚动是错误的,模型使用 future 事件来解释训练集中的相同 future 。

  2. 非独立抽样:如果您要提前预测的时间间隔短于计算相对变化的时间间隔,则您的样本不是独立的。

  3. 我还不知道的其他可能的错误

最后,每个人都可能以某种潜在的方式犯上述错误。要检查没有发生这种情况,您需要通过回溯测试来验证您的模型。每天都由仅根据过去事件严格训练的模型进行预测。

当 OOB-CV 和回溯测试完全不一致时,这可能是代码中存在某些错误的提示。

要进行回测,请在 T[t-1 到 t-traindays] 上滚动。对此训练数据建模并预测 T[t]。然后将 t 加一,t++,并重复。

为了加快速度,您可以只训练一次模型或在每第 n 个 t 增量时训练您的模型。

关于time-series - 将随机森林用于时间序列数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32476944/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com