如何判断一段数据趋势,上升或 下降

如何判断一段数据趋势,上升或 下降

最近工作有这样一个需求:给定十几个时序序列,判断出这个序列的趋势(上升、下降或平稳)。最开始肯定是想到,直接线性拟合斜率大小来判断呗,但是业务部门的同事说他们不止看整体斜率还看局部特征什么的总之很感性。

于是我把每个点当一个维度直接跑分类模型(lr,多层感知机,svm,rf,gbdt,xgboost),结果还不错上升和下降的查准查全率都到80%(总共样本也就五六十个。。。)。

为了提高查准率查全率,又和业务部门同事沟通了一下,他们主要综合整体以及最后几个点的趋势来判断,所以处理整体斜率,还将最后几个点的拟合斜率作为特证,这样再去分类,果然查准率或查全率得到了提高。这充分说明了传统机器学习特征提取的重要性。。。逃

  1. 通常是求导,就是看前后2个数的差值。但为了避免毛刺,估计要滤波。这就得具体问题具体分析了,麻烦
  2. 看连续的差值是不是都是正或者负不就行了么
  3. 然后把 连续的差值 累加起来,看结果是正 还是 负。正就是 上升 负 就是下降。  这样怎么样?
  4. 先滤波,再比较。
  5. 二阶差分之后看正负值可以得到拐点,也就是趋势的拐点
  6. RC低通滤波 Y(n)=kY(n-1)+(1-k)X(n)
  7. 一阶差分 ΔY(n)=Y(n+1)-Y(n)
  8. 二阶差分 Δ(ΔY(n))=Y(n+2)-2Y(n+1)+Y(n)
  9. 不是取一个窗口,前1/3求平均,后1/3求平均,然后比大小判断趋势么

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119538.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号