写在前面:

针对一个数值序列,识别出其中的异常波动点。例如:

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.9 1 1.1 1 1 0.9 1, ...

1.1 1 1 1.1 1 0.8 0.9 1 1.2 0.9 1 1 1.1 1.2 1 1.5 1 3 2 5 3 2 1 1 1 0.9 1 1 3, ...

2.6 4 3 3.2 2 1 1 0.8 4 4 2 2.5 1 1 1];

其实不同场景有不同的使用需求,有的场景需要识别peak点,有的场景需要识别异常波动的起始点。

下面介绍一种方法对不同场景下都有一定启发意义,可以在该基础上做一定的trick。

Smoothed z-score algorithm

主要思想:

1 利用过去一段历史窗口针对下个节点值做预测(利用平均值,方差信息),若是其超过了一定的阈值,则是个异常点。

2 对异常点的数值进行平滑,以便评估下下个点是否为异常点。因为不做平滑,由于当前是个异常点,对平均值、方差影响较大,若是下一个点仍是异常点,可能不会识别。

可以看到红色是序列数据,灰色区域是可接受的范围值,中间的绿线是平滑后的预估值。

当红色点超出灰色区域,则在下面标记一个信号量,其取值为-1,0,1.

这样就把一个序列数据,转变成一个类似脉冲信号的中间态。然后我们就可以基于这个信号根据需求加以利用。

python代码:

可见,根据当前值和历史平均值的绝对差值和方差做比较。

然后对当前节点做平滑,平滑系数是(0,1),值越大越受当前值的影响。

参考参数:lag=5左右, threshold=3.5左右, influence=0.5左右

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

  1. python label显示图片_高大上的YOLOV3对象检测算法,使用python也可轻松实现

    继续我们的目标检测算法的分享,前期我们介绍了SSD目标检测算法的python实现以及Faster-RCNN目标检测算法的python实现以及yolo目标检测算法的darknet的window环境安装, ...

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

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

  3. 时间序列异常点检测算法(Smoothed z-score algorithm)

    目录 前言 一.原理 二.代码实现 总结 前言 时间序列异常点处理! 一.原理 算法原理:利用滑动窗口对之后的节点值做一个范围预测(利用平均值和方差),如果真实节点不在这个范围,则表明该节点是异常值. ...

  4. python检测异常数据_用Python中从头开始的实现完整的异常检测算法

    利用概率的异常检测算法 异常检测可以作为离群分析的统计任务来对待. 但是,如果我们开发一个机器学习模型,它可以自动化,并且像往常一样可以节省大量时间. 有很多异常检测用例. 信用卡欺诈检测,故障机器检 ...

  5. python模型训练框架_使用TensorFlow框架基于SSD算法训练模型

    内容引用其它文章:https://my.oschina.net/u/876354/blog/1927351 目标检测是AI的一项重要应用,通过目标检测模型能在图像中把人.动物.汽车.飞机等目标物体检测 ...

  6. python实现二分查找_数据结构和算法:Python实现二分查找(Binary_search)

    在一个列表当中我们可以进行线性查找也可以进行二分查找,即通过不同的方法找到我们想要的数字,线性查找即按照数字从列表里一个一个从左向右查找,找到之后程序停下.而二分查找的效率往往会比线性查找更高. 一. ...

  7. python删除异常值代码_利用Python进行异常值分析实例代码

    前言 异常值是指样本中的个别值,也称为离群点,其数值明显偏离其余的观测值.常用检测方法3σ原则和箱型图.其中,3σ原则只适用服从正态分布的数据.在3σ原则下,异常值被定义为观察值和平均值的偏差超过3倍 ...

  8. python特征匹配 查找_特征匹配+单纯形查找对象

    我尝试使用opencv获取一个查询图像并在一个基本图像中进行匹配.我看了一下在线教程,你看,他们有示例代码来做这件事.所以我复制并粘贴了代码,并尝试用一些试用图像来运行它.下面是代码和一组图像示例.在 ...

  9. python socket发送数组_利用pyprocessing初步探索数组排序算法可视化

    [经过两次更新,功能基本完成]最终效果请直接下拉到最后一个视频观看 背景说明 这篇文章旨在初步探索利用pyprocessing的强大的可视化功能,以及pyprocessing和Ipython之间的本地 ...

最新文章

  1. Linux EXT2文件系统结构分析(详情见附件)
  2. 使用Java合并图片、修改DPI
  3. 《C和指针》读书笔记第一章快速上手
  4. idea基于spring boot的依赖分开打包
  5. electron开发
  6. iOS开发UIResponder简介API
  7. ASCII编码,将英文存储到计算机
  8. 通过 powershell 配置 IIS
  9. 价值50个亿的10句话
  10. c 语言打印沙漏图形,PAT乙级 1027打印沙漏 [图形输出]
  11. Abaqus取消汉化(汉译英,英译汉)
  12. 空间自相关—莫兰指数
  13. idea 调整缩进快捷键_IDEA 代码格式化,快捷键
  14. 单片机——电子密码锁设计报告
  15. 【只推荐一位】木东居士,数据挖掘的大神!
  16. Faulty Robot
  17. Java实现多文件生成压缩包下载
  18. HDU 4489 The King’s Ups and Downs(组合DP)
  19. 一步步解密微商城系统开发流程
  20. 音视频播放器开发——实现变速播放

热门文章

  1. Database工作笔记-对层次库的理解
  2. php三级实例,三级联动实例
  3. 清华附2021高考成绩查询,2021年高考多少分能上清华大学?附清华大学录取分数线2020全国汇总...
  4. docker 容器数据卷
  5. mysql 字段类似字段值6_MySQL面试题
  6. UBI文件系统和镜像的制作及分区挂载说明
  7. matlab模拟简单孔径衍射图样,夫琅和费衍射实验文献综述
  8. 计算机网络之传输层:1、概述(传输层功能、端口号、套接字、TCP、UDP)
  9. 计算机专业女生的就业方向参考
  10. USACO-Section1.6 Number Triangles (动态规划)