繁体   English   中英

关于时间序列中训练测试拆分的问题

[英]Question about Train-Test Split in Time Series

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

这真的取决于你的问题。 如果:

  1. 如果您的 model 没有 memory,并且只是一个映射任务,那么附加的时间戳没有任何意义,实际上建议对数据进行混洗以获得更好的分布。 如果是这种情况,并且您获得了更高的 R 平方值,那么您绝对应该使用 go。 (我认为是这种情况,因为 R-squared 通常用于这些类型的任务)
  2. 如果您的任务依赖于模式并且每个预测都会影响序列中的下一个。 这就是顺序很重要的地方。 在这种情况下,您永远不应该对数据进行洗牌。 任何表明这是谎言的指标。 您可以做的最好的事情是根据时间戳拆分训练集和测试集,在此之前您拥有训练集和之后的测试集。 然后将训练集和测试集划分为固定时间 windows。 仅当 window 跨度对于您的情况足够大时,您现在可以对这些 windows 进行洗牌。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM