异常检测包PyCuliarity的使用

时间序列异常检测算法梳理的文章中介绍了Twitter的异常检测工具AnomalyDetection。另外也讲到了Python版本PyCuliarity的简单使用。由于AnomalyDetection和PyCuliarity都没有相关的文档,这里将代码中抠出来的注释拿出来做下学习。

PyCuliarity有两个顶级函数,一个用于timeseries数据,一个用于向量数据处理,detect_ts和 detect_vec:

  • detect_ts:输入的DataFrame需要两列数据,其中一列为时间,另一列为该时间点对应的值
  • detect_vec:可以不包含是时间列,时间索引按照DataFrame长度自动生成。

两者的使用方法基本一致,这里主要介绍detect_ts的使用,源码注释如下:

参数详解:

  • df:包含时间和值的DataFrame
  • max_anoms=0.10:发现异常数据的量(占总体的百分之多少)
  • direction=’pos’:’pos’是发现数据突增点,’neg’是发现数据突降点,’both’是包含突增与突降
  • alpha=0.05:接受或拒绝显著性水平,即p-value
  • only_last=None:仅再时间序列最后1天(’day’)或1小时(’hr’)寻找异常
  • threshold=None:仅报告高于指定阈值的正向异常。选项有:
    • med_max:每日最大值的中位数
    • p95:每日最大值的95%
    • p99:每日最大值的99%
  • e_value=False:返回数据中新增一列期望值(加了后都是NaN,不清楚原因)
  • longterm=False:当时间序列超过一个月时,设置此值,
  • piecewise_median_period_weeks=2:当设置longterm后需要设置该值,设置滑动窗口的大小,注意这里需要>=2
  • plot=False:输出图像,已经不支持
  • y_log=False:对Y轴值取对数
  • xlabel = ”:添加输出到图形的X轴标签
  • ylabel = ‘count’:添加输出到图形的Y轴标签
  • title=None:输出图像的标签
  • verbose=False:是否输出debug信息
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

Python检验数据是否正态分布

判断数据是否符合正态分布,比如使用3-sigma判断数据异常前,首先需要确定的是数据是否符合正态分布。今天一起

数据探索Pandas-Profiling与Dataprep.…

在使用数据前,我们首先要做的事观察数据,包括查看数据的类型、数据的范围、数据的分布等。Pandas-Profi

开源指标可视化工具Graphite

Graphite 是处理可视化和指标数据的优秀开源工具。它有强大的查询 API 和相当丰富的插件功能设置。事实

发表评论

电子邮件地址不会被公开。 必填项已用*标注