我知道这是不建议洗牌您的培训和测试集的时间序列,否则的模型将无法理解时间依赖的功能。
但是,对于数据框架的所有特性,我现在都使用滞后变量。如果我对每个特性有7天的延迟,那么模型,在这种情况下,随机森林(RF)可以访问每个特性的过去7天来预测每个\hat{y}_{i}。
在使用sklearn.model_selection.train_test_split时,我可以设置shuffle=True吗?我已经测试了该模型的7天的滞后与/没有shuffle,它适用于相当适合时,shuffle=False。射频与shuffle=True的性能要好得多,我的训练/测试MAE收敛得很好。
当对时间序列数据使用时间滞后变量时,设置我的shuffle=True有什么错误吗?
发布于 2021-07-05 12:47:58
是的,设置shuffle=True是错误的。
通过对数据进行洗牌,您可以让模型学习数据分布的属性,这些属性可能只出现在测试期间。例如,如果你有一个趋势的数据,洗牌将“帮助”你处理它。
在实时场景中,您将永远无法访问发行版的这些属性。
https://datascience.stackexchange.com/questions/97454
复制相似问题