LSTM滞后性
  ws8ODctzKAgC 2023年11月02日 75 0

原因:回归算法将使用您提供的时间窗口中的值作为样本,以最大程度地减少误差。假设您正在尝试预测时间t的值。输入是以前的收盘价,即t-20到t-1的最后20个输入的时间序列窗口(假设样本输入的timestamp是20)。回归算法可能会学习在时间t-1或t-2处的值作为预测值,因为这样不需要做什么就可以达到优化的误差之内了。这样想:如果在t-1值 6340,那么预测 t时刻为6340或在t + 1时为6340,从整体来看将最大程度地减小误差(因为误差是预测的很多点的误差进行汇总),但是实际上该算法没有学习任何东西,它只是复制,因此除了完成优化任务外,它基本上什么也不做。

解决方法:

  1. 不要给出真实的值,对输入样本进行非线性化的处理,平方,根号,ln等,是不能直接直观地预测其结果,而只是为算法提供模式。
  2. 采用多类别分类,可以直接进行二进制分类(我这儿的理解是:采用树模型,xgboost,gbdt)
  3. 尝试预测时间t和t-1处值的差异,而不是直接预测t时刻的值
  4. 将样本数据差分到平稳后再对差分后的数据进行预测

做过时间序列的朋友可能常常会有这样的感受,用了某种算法做出来的测试集的平均绝对误差率或者r2系数都很好,但是把测试集的真实值及预测值画出来对比一下,就会发现t时刻的预测值往往是t-1时刻的真实值,也就是模型倾向于把上一时刻的真实值作为下一时刻的预测值,导致两条曲线存在滞后性,也就是真实值曲线滞后于预测值曲线,就像下图右边所显示的那样。之所以会这样,是因为序列存在自相关性,如一阶自相关指的是当前时刻的值与其自身前一时刻值之间的相关性。因此,如果一个序列存在一阶自相关,模型学到的就是一阶相关性。而消除自相关性的办法就是进行差分运算,也就是我们可以将当前时刻与前一时刻的差值作为我们的回归目标。但是,在其他任务进行特征选择的时候,我们是会把目标变量相关性低的特征去掉,留下相关性强的特征。

还有一点需要注意的是,单纯使用平均绝对误差率或者r2系数容易误导,因为即使指标效果很好,但是很有可能这个模型也是没有用的。一种做法是可以计算一个基准值,即如果全部预测值都采用上一时刻的真实值,这时候的平均绝对误差率或者r2系数是多少,如果你以后加了其他特征,依然没办法超过这个基准值或者提升不大,那就放弃吧,这个时间序列可能已经没办法预测了。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
ws8ODctzKAgC
作者其他文章 更多

2023-11-12

2023-11-02

2023-11-02

2023-11-02

2023-11-02

2023-11-02