异常值检测

之前发过一篇讨论文章——异常值怎么整。

在原文评论区里(戳此→异常值怎么整?| 讨论)得到了各位大大的指教,数说君也受益匪浅,现在整理一下供大家参考:

聚类

很多人提到聚类,通过距离发现一些距离很远的点,是一个常用的方法。

异常值识别除了看残差图还可以看影响分析DFFITS准则Cook统计量辣些。如果是按时间先后排列的,出现异常值很有可能是有断点,计量里边比较经典的是邹断点检验了昂,然后可以考虑加虚拟变量解决。单纯的截面数据老师说可能是由于结构出了问题(然而并没有遇到过)。反正出现异常值不要第一反应就是去掉了昂~

假设我有80年的时间序列数据,前面30年数据和后面50年数据的走势完全不同,拟合出来的模型也当然会不同,那么就说数据出现了断点或转折点。这位同学提出了高级计量里的邹氏检验,让我觉得这次讨论非常值。

单指标一般看时间序列图就可以直接识别,这种异常值虽然统计上定义为异常但是最终决定是否异常的主意还是要看实际业务,比如:如果一个网站频道CR在某一天明显下降,但是很有可能是这一天有大量爬虫进来导致访问量激增的结果;如果多指标可以主成分后再综合排序,选出ToP几和Last几之后再结合业务特点分析原因…一言以蔽之就分析异常一定结合业务逻辑

非常经典的思路,后面分享的一个芝加哥大学PPT中,就用了这个思路:

PCA提取多指标的主成分——进行聚类或者排序——找出异常值/点

我做面板数据一般都是缩尾异常值(winsorize),相当于人为censored保留其部分信息,使后续分析结论更稳健

异常值有很大的价值,需要提取出来进行专门分析,但有时候为了把握大势或者总体规律,或者为了发文章扑项目,不得不进行缩尾处理。

(๑• . •๑)一直都很想搞清楚异常值和缺失值该怎么处理~~之前都是根据业务背景处理,方法比较“粗暴”,数说君赶紧点拨一二吧::>_<::

我想说根据业务背景处理也非常重要,有时候统计分析半天,还不如专业人士扫一眼...

异常值是一个小的研究方向,2013年的时候有美国的大牛写了一本书outlier analysis,系统介绍了异常值的处理方法

非常感谢,数说君找到了电子版,大家可以自行下载:

http://bbs.pinggu.org/thread-2595321-1-1.html

感谢在评论区里留言的大大们:

傅培国、Rpanda.W?、冬眠中的M小姐、释冰燃、钱亦欣、Koonie Tseung、Thinkdeeper


除了outlier analysis这本书,数说君分享一个PPT。作者是芝加哥大学的Robert Grossman。

简单翻译一下大体内容:

题目是”大数据集中监测异常值的方法“,主要内容有3点:

1. 概括三种异常值检测方法

方法1:对总体进行统计建模来检测异常值

  • k个标准差以外的;
  • 用指数加权移动回归;
  • 类似CUSUM的一些方法,可以最快速的检测到一些变化。

方法2:聚类法

聚类之后,通过比较每个点到每类的距离,可以发现异常点。但是,

  • 距离的定义有很多种;
  • 聚类的方法也不止一种。

因此最终的结果也不是一定的。

方法3:近邻比较

比较与周围点的分布密度,比如某一段的密度曲线明显与周围其他地方不一样,那么就存在异常情况。

2. 概括三种数据

有监督的数据:即知道哪些数据是正常的哪些是异常的;

无监督的数据:没有标签,不知道哪些是异常的哪些是正常的;

半监督的数据:只知道部分数据的标签,它们是异常还是正常。

3. 举了三个例子

例1:FMRL中的活跃三维像素

(FMRL:功能性核磁共振成像技术)

这个例子首先给鲑鱼show一组照片,照片里有人,这些人在不同的社会环境下,表现出来的情绪也各不同。给鲑鱼看完照片之后,将鲑鱼拿去进行核磁共振扫描(文中说扫描的时候已经死了,之前看照片的时候应该是活的),

这个研究就是利用鲑鱼来判断照片里人的情绪。

很神奇吧??

但是它跟本文基本没什么关系!从这个例子,作者引出的的多重校正才是重点。

多重校正其实也算是一种异常值的检测方法,进行多次独立test之后,比如1000次,有很多显著的结果,比如其中的100个都是显著的,但这100个中肯定有很多是由于”test太多了,碰巧造成的“,因为我们设定P=0.05,本身的意义就是”允许100次犯5次错误"嘛。

关于多重校正,数说君之前专门写过一篇文章,戳这里:浅议P值校正

例2:光谱异常值检测

这个例子要检测有异常光谱的像素。怎么做的呢?简单来说三点:

1)对每一个 像素 的一系列 光谱值 进行主成分分析,提取前5个主成分。

2)在转换过的5D空间里(对应5个主成分),进行K均值聚类。k=50,距离采用马氏距离。

3)根据每个点到类(一般是我们感兴趣的那个类)的距离,对每个点进行异常程度打分,将结果可视化。

这个例子中,使用的工具是Hadoop和Accumulo,算法是聚类、PCA。该项目在操作上,每天都整理好一些异常值给领域专家检查。

例3:疾病发病率在地理空间上的变化

工具上,该项目用private secure OpenStack cloud来储存数据,算法是基于近邻的bootstrap(Neighbor based bootstrap,NB2),在操作上特别注意结果的显现和可视化。

例4:POS机支付信息的异常检测

这个项目中简单来说也分三步:

1)作者分了很多层建模型,对每个银行建模(银行维度)、对每个区域建模(区域维度)、对每种交易类型建模(交易类型维度)。

2)对于三个维度空间里的每个子空间(cell),建立一个基准模型(baseline),最后可能会有几千个基准模型。

3)对每个POS机的支付行为,比较其与基准模型的差异,并对异常程度进行打分,可视化结果。

由于没有这方面的项目经验,这个例子我看的也不是很懂,如果有了解的行内人希望给科普一下~

总之,在这个PPT中,作者强调:

异常值是指与其他观测值偏离很大的值,这样的大偏离,让我们怀疑它是否由一个不同的机制所生成的。异常检测就是要寻找出背后这个机制。 我们将异常值就简单定义为,由一个不同的机制或者总体所产生值。

以上是数说君个人的理解,详细还是看PPT吧:

:


原文发布于微信公众号 - 数说工作室(shushuojun)

原文发表时间:2016-01-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习自然语言处理

【概率论】基础之概率概论与集合论

概率论对于我们学习机器学习,深度学习等理论,还是自然语言处理,计算机视觉等应用都是很有用的。概率论和其他线性代数,微积分等还是不太一样的,概率这样的问题,就是在...

1233
来自专栏CreateAMind

深入理解 RNN-神经图灵机(代码)

在写《深度学习与神经科学相遇》的过程中开始谈到了RNNs(Recurrent Neural Networks),我想很有必要暂停下来先对RNNs进行一些更深入的...

1623
来自专栏新智元

【面试107问】谷歌等巨头机器学习面试题:从逻辑回归到智力测验

【新智元导读】很多人都想知道,谷歌、微软、Facebook 这样的顶级科技公司,在面试大数据机器学习工程师时会问些什么问题。可惜的是,这些公司的面试者事先都要签...

4327
来自专栏SIGAI学习与实践平台

­­­­理解计算-从根号2到AlphaGo 第4季 凛冬将至

原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。

1112
来自专栏目标检测和深度学习

统计学入门需掌握的四点思想

虽然很多人经常接触统计,甚至读本科/硕士/博士时都学习过,但是当他们亲自处理数据时往往极易陷入懵逼状态,不知用哪种方法比较合适,不知如何选择更佳解决方案。这便使...

3159
来自专栏机器学习算法与Python学习

tweet情感分析流程

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 前言 自然语言处理(NLP)中一个很...

3638
来自专栏SIGAI学习与实践平台

理解计算-从根号2到AlphaGo 第4季 凛冬将至

在新中国诞生的那一年,加拿大生理学家唐纳德﹒赫布(Donald O. Hebb)出版了《行为的组织》 (《The Organization of Behavio...

832
来自专栏PPV课数据科学社区

连载 | 概率论与数理统计(2) – 随机变量概述

作者:Belter。专注于生物方向的数据分析,一位编程爱好者。关注Python, R和大数据。

801
来自专栏机器之心

谷歌微软等科技巨头数据科学面试107道真题:你能答出多少?

选自Learndatasci 机器之心编译 参与:李泽南 来自 Glassdoor 的最新数据可以告诉我们各大科技公司最近在招聘面试时最喜欢向候选人提什么问题。...

2847
来自专栏CDA数据分析师

测试:你是否具备企业的数据挖掘能力?

1.某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖掘的哪类问题? A. 关联规则发现 B. 聚类 C. 分类 D. 自然语言处理 ...

2356

扫码关注云+社区

领取腾讯云代金券