目录

  • 前言
  • 一、原理
  • 二、代码实现
  • 总结

前言

时间序列异常点处理!


一、原理

  • 算法原理:利用滑动窗口对之后的节点值做一个范围预测(利用平均值和方差),如果真实节点不在这个范围,则表明该节点是异常值。
  • 平滑原理:对异常点做一个平滑,以用来评估之后的节点。(这里平滑的值=当前异常节点的百分之五十+上一个被平滑后节点的百分之五十,百分之五十这个值可以调节)
  • 缺点:遇到连续的异常点,可能不会检测到第一个异常点之后的节点。
  • 建议1:咱这边对于这个缺点,给出的建议是,对异常点的平滑可以做一个修改,可以使用之前几个值的一个平均值或者是中位数来做一个填充,如果咱这个技术过硬,可以采用机器学习预测异常点,嗨嗨嗨,也是极好的。
  • 建议2:如果能大概测试到异常点有多少,可以使用之前平均值和跳过几个异常点之后的平均值做差,当作系数乘到这里threshold * stdFilter [i-1]。
  • 图示解释:可以看到红色是序列数据,灰色区域是程序可接受的范围值,当红色点超出灰色区域,则在下面标记一个信号量,其取值为-1,0,1.(可以理解为信号量是对程序处理异常点的一个直观体现)
  • 与代码的对应:信号量对应程序中的列表signals,方差列表对应stdFilter ,修正后的输入列表对应filteredY

二、代码实现


#!/usr/bin/env python
# Implementation of algorithm from https://stackoverflow.com/a/22640362/6029703
import numpy as np
import pylab# 源代码地址
# https://stackoverflow.com/questions/22583391/peak-signal-detection-in-realtime-timeseries-data/43512887#43512887
# 参考文章
# https://zhuanlan.zhihu.com/p/39453139
def thresholding_algo(y, lag, threshold, influence):signals = np.zeros(len(y))filteredY = np.array(y)avgFilter = [0]*len(y)stdFilter = [0]*len(y)avgFilter[lag - 1] = np.mean(y[0:lag])stdFilter[lag - 1] = np.std(y[0:lag])for i in range(lag, len(y)):if abs(y[i] - avgFilter[i-1]) > threshold * stdFilter [i-1]:if y[i] > avgFilter[i-1]:signals[i] = 1else:signals[i] = -1filteredY[i] = influence * y[i] + (1 - influence) * filteredY[i-1]avgFilter[i] = np.mean(filteredY[(i-lag+1):i+1])stdFilter[i] = np.std(filteredY[(i-lag+1):i+1])else:signals[i] = 0filteredY[i] = y[i]avgFilter[i] = np.mean(filteredY[(i-lag+1):i+1])stdFilter[i] = np.std(filteredY[(i-lag+1):i+1])return dict(signals = np.asarray(signals),avgFilter = np.asarray(avgFilter),stdFilter = np.asarray(stdFilter))

总结

烦、装linux环境装的我心烦意乱! 装了好久了还没装好,亿点点毛病。

时间序列异常点检测算法(Smoothed z-score algorithm)相关推荐

  1. python时间序列异常值查找_(No.38)时间序列异常点检测算法

    写在前面: 针对一个数值序列,识别出其中的异常波动点.例如: p = [1 1 1.1 1 0.9 1 1 1.1 1 0.9 1 1.1 1 1 0.9 1 1 1.1 1 1 1 1 1.1 0. ...

  2. 非监督异常点检测算法总结——没有想到矩阵分解和编码解码器也是一种思路...

    非监督异常点检测算法总结 一.基于密度 1) d(p,o):两点p和o之间的距离: 2) k-distance:第k距离 对于点p的第k距离dk(p)定义如下: p的第k距离,也就是距离p第k远的点的 ...

  3. Python机器学习笔记:异常点检测算法——Isolation Forest

    Python机器学习笔记:异常点检测算法--Isolation Forest 参考文章: (1)Python机器学习笔记:异常点检测算法--Isolation Forest (2)https://ww ...

  4. 异常点检测算法(三)Replicator Neural Networks

    异常点检测算法(三)Replicator Neural Networks 异常值检测算法在数据挖掘的诸多领域有着应用场景,例如金融领域,信息传输领域,图像领域等.在研究过程中,有学者给出了异常点的一个 ...

  5. 论文学习——多维时间序列异常检测算法综述

    文章目录 0 封面 1 标题(title) 2 作者(author) 3 摘要(abstract) 4 结论(conclusion) 4.1 维数约减 4.2 时间序列模式表示 4.3 异常模式发现 ...

  6. 巩膜:论文翻译《一种改进的眼角检测算法》An Improved Algorithm for Eye Corner Detection

    1509.04887.pdf论文翻译 An Improved Algorithm for Eye Corner Detection Anirban Dasgupta, Anshit Mandloi, ...

  7. 【KDD20】多变量时间序列异常检测算法之USAD:对抗性训练AE

    前言 KDD20的paper 链接:https://dl.acm.org/doi/pdf/10.1145/3394486.3403392 代码链接:https://github.com/manigal ...

  8. RX异常点检测算法(马氏距离)

    异常检测算法目的在于从影像中将目标信息(异常信息)从影响背景和噪声中分离出来.RX异常检测算法为一种局部目标检测算法,算法的监测窗口包括目标窗口和背景窗口,且后者远大于前者.RX算法假设数据空间白化且 ...

  9. 【时间序列异常检测算法】——传统异常检测算法介绍及代码实现

    背景 前面博客讲述了正常值组成的时间序列如何预测t时刻的值,是时序预测任务: 这里讲述的是包含有异常值的时间序列如何判定哪个时刻发生了异常,是时序异常检测任务. 同比:本期与同期做对比. 环比:本期与 ...

最新文章

  1. DzzOffice1.0 Beta2发布
  2. QPS相关的概念收集(吞吐量(TPS)、QPS、并发数、响应时间(RT))
  3. 【例3-4】求后序遍历
  4. ipython和jupyter_IPython与Jupyter Notebook以及Anaconda
  5. “庆渝年”​又更新了!法院裁定:禁止李国庆接触、骚扰、殴打俞渝
  6. 安装配置mac版_全面战争三国 Mac版Mod安装指南
  7. python无师自通课后答案_python 编程-无师自通—命令行(笔记)
  8. Mac电脑如何让聚焦功能显示在菜单栏?
  9. rollup打包js的注意点-haorooms博客分享
  10. 2020家用千兆路由器哪款好_千兆路由器哪个好 2020年值得入手的家用千兆路由器推荐...
  11. 【汤家凤考研数学手稿】第五章 定积分【重点】
  12. 百家讲坛-苏轼-康震
  13. 用防火墙可以防御DDoS吗?
  14. java 支付宝预下单失败,系统异常,预下单状态未知!!! connect timed out
  15. Win1903下,如何简单的附加dnf
  16. 史上最最最没用程序——自写平衡化学方程式
  17. pdf翻译,两款pdf文件翻译软件,支持linux/ubuntu,window,mac下使用
  18. Linux上安装软件软件汇总
  19. 黄金分割法求函数最小值
  20. ai人工智能大爆发_人工智能解释了大爆炸之前发生的事情

热门文章

  1. 抖音服务器带宽有多大,才能供上亿人同时刷?
  2. 关于计算机春联PPT,《春联》PPT课件
  3. Linux关闭u盘缓存,linux 下怎么关掉u盘
  4. 小程序电商成为新趋势爆红的原因
  5. elementUI中input组件的autofocus属性不生效
  6. Spark MLlib学习笔记:构建一个机器学习工作流
  7. deepin安装anaconda
  8. 多分支结构——个人所得税计算器2
  9. 在线考试系统计时方法
  10. 输入两个由整型数构成的集合(元素个数均为5)分别放到数组A和B中,求这两个集合的交集(交集的元素由两个集合中的相同元素构成),最后输出交集中的元素。