关于时间序列中的火车测试拆分的问题

时间:2020-05-31 14:34:35

标签: python

我遇到一个有关在“时间序列”任务中将数据分为训练和测试集的问题。 我知道数据不能被改组,因为它对于保持数据的时间特性很重要,因此我们不会创建能够展望未来的方案。 但是,当我对数据进行混洗(用于实验)时,我得到的R-Squared分数高得离谱。 是的,使用测试集评估R平方。有人可以简单解释为什么会这样吗?为什么按时间序列改组训练和测试数据会产生较高的R-Squared分数?我的猜测是,它与时间序列的趋势有关,但我不确定。我只是出于好奇而问,谢谢!

1 个答案:

答案 0 :(得分:0)

这实际上取决于您的问题。如果:

  1. 如果您的模型没有内存,而仅是一个映射任务,那么附加的时间戳就没有任何意义,因此实际上最好对数据进行改组以获得更好的分布。如果是这种情况,并且您获得了更高的R平方值,那么您绝对应该这样做。 (我认为是这种情况,因为R平方通常用于这些类型的任务)
  2. 如果您的任务依赖于模式,并且每个预测都会影响序列中的下一个。这是订单重要的地方。在这种情况下,您永远不要洗牌。任何暗示该撒谎的指标。您可以做的最好的事情就是根据时间戳将火车和测试集分开,然后再将您的火车和测试集放在一起。然后将训练和测试集划分为固定的时间窗口。现在,只有当窗口跨度足够适合您的情况时,您才能对这些窗口进行随机播放。

希望这会有所帮助!