怎么对时间序列进行交叉验证?

  统计/机器学习 模型验证 时间序列 开放问题    浏览次数:8344        分享
2

对于时间序列类型的预测模型,应该怎么进行交叉验证呢?

如果用普通的交叉验证,会有数据泄露,那么该怎么办呢?


 

Gakki   2017-10-17 09:16



   1个回答 
11

你说的对,不能用普通的交叉验证,这样会有数据泄漏。

有个方案是保证时间顺序,永远用后面的数据作为测试集。

比如说你的数据是从1月份到12月。

那么你可以:

    1到6月训练,在7月上验证

    2到7月训练,在8月上验证

    3到8月训练,在9月上验证

    4到9月训练,在10月上验证

    5到10月训练,在11月上验证

这样的缺点是,1到6月的数据从来不会被用作验证集,所以你最后根据上面交叉验证的结果,是有些偏差性的。

示意图如下:

        

如果各位有其他的好方法,欢迎指正~


SofaSofa数据科学社区DS面试题库 DS面经

Lydia   2017-11-20 11:05

谢谢!正在找这个呢! - yayat   2018-02-26 03:39


  相关讨论

有什么方法可以找到时间序列的周期?

python中有哪些关于隐马尔可夫模型(HMM)的package?

python里有现成的卡尔曼滤波器的包吗?

怎样选择合适的算法?比如这个天气预报数据预测电力故障

ARIMA模型中的三个参数(p, d, q)都是什么意思?

如何判断时间序列的周期性?

怎么判断一个时间序列是平稳的?

怎么对时间序列类的数据进行聚类?

怎么把datetime类型转为字符串类型,但只保留日期

求助,按照百度的方法从日期提取年龄出现错误了

  随便看看

VGG16和VGG19的区别?

AB实验的哈希分桶技术是什么意思?

python里怎么计算曼哈顿距离?

向量梯度下降优化的最佳步长?

线性回归是机器学习算法吗?