数据挖掘-离群点检测
2016-05-01 21:22
190 查看
离群点检测
离群点检测是数据挖掘中重要的一部分,它的任务是发现与大部分其他对象显著不同的对象。大部分数据挖掘方法都将这种差异信息视为噪声而丢弃,然而在一些应用中,罕见的数据可能蕴含着更大的研究价值。
离群点检测已经被广泛应用于电信和信用卡的诈骗检测、贷款审批、电子商务、网络入侵、天气预报等领域,如可以利用离群点检测分析运动员的统计数据,以发现异常的运动员。
1) 离群点的成因
离群点的主要成因有:数据来源于不同的类、自然变异、数据测量和收集误差。
2)离群点的类型
对离群点的地址分类如下表所示:
离群点检测方法
常用离群点检测方法:基于统计,基于邻近度,基于密度,基于聚类。
基于统计模型的离群点检测方法需要满足统计学原理,如果分布已知,则检验可能非常有效。甚至邻近度的离群点检测方法比统计学方法更一般、更容易使用,因为确定数据集有意义的邻近度比确定它的统计分布更容易。基于密度的离群点检测与基于邻近度的离群点检测密切相关,因为密度常用邻近度定义。
1. 基于模型的离群点检测方法
通过估计概率分布的参数来建立一个数据模型,如果一个数据对象不能不能很好的跟该模型拟合,即如果它很可能不服从该分布,则它是一个离群点。
1)一元正态分布中的离群点检测
正态分布是统计学中最常用的分布之一。N(0,1)的数据对象出现在该分布的两边尾部的机会很小,因此可以用它作为检测数据对象是否是离群点的基础。数据对象落在三倍标准差中心区域之外的概率仅有0.0027。
2.离群点常用检测方法
先将所有数据对象放入正常数据集,这时离群点为空集;再用一个迭代过程将数据对象从正常数据集转移到离群点集,只要该转移能提高数据集的总似然。
3. 基于聚类的离群点检测方法
聚类分析用于发现局部强相关的对象组,而异常检测用来发现不与其他对象强相关的对象。因此,聚类分析非常自然的可以用于离群点检测。
1)丢弃远离其他簇的小簇
一种利用聚类检测离群点的方法是丢弃远离其他簇的小簇。通常,该过程可以简化为丢弃小于其个最小阈值的所有簇。
这个方法可以和其他任何聚类计数一起使用,但是需要最小簇大小和小簇与其他簇之间距离的阈值。而且这种方案对簇个数的选择高度敏感,使用这个方案很难将离群点得分附加到对象上。
2)基于原型的聚类
另一种更系统的方法,首先聚类所有对象,然后评估对象属于簇的程度。在这种方法中,可以用对象到它的簇中心的距离来度量属于簇的程度。特别地,如果删除一个对象导致该目标的显著改进,则可将该对象视为离群点。
对于基于原型的聚类,评估对象属于簇的程度主要有两种方法:一是度量对象到簇原型的距离,并用它作为该对象的离群点得分;二是考虑到簇具有不同的密度,可以度量簇到原型的相对距离,相对距离是点到质心与簇中所有点到质心距离的中位数之比。
基于聚类的离群点检测改进:
1)离群点对初始聚类的影响:通过聚类检测离群点时,离群点会影响聚类结果。为了处理该问题,可以使用如下方法:对象聚类,删除离群点,对象再次聚类
2)还有一种更复杂的方法:取一组不能很好的拟合任何簇的特殊对象,这组对象代表潜在的离群点。随着聚类过程的进展,簇在变化。不再强属于任何簇的对象被添加到潜在的离群点集合;而当前在该集合中的对象被测试,如果它现在强属于一个簇,就可以将它从潜在的离群点集合中移除。聚类过程结束时还留在该集合中的点被分类为离群点。
对象是否被认为是离群点可能依赖于簇的个数。该问题也没有简单的答案。一种策略是对于不同的簇个数重复该分析;另一种方法是找出大量小簇,其想法是:
1)较小的簇倾向于更加凝聚;
2)如果存在大量小簇时一个对象是离群点,则它多半是一个真正的离群点。
离群点检测是数据挖掘中重要的一部分,它的任务是发现与大部分其他对象显著不同的对象。大部分数据挖掘方法都将这种差异信息视为噪声而丢弃,然而在一些应用中,罕见的数据可能蕴含着更大的研究价值。
离群点检测已经被广泛应用于电信和信用卡的诈骗检测、贷款审批、电子商务、网络入侵、天气预报等领域,如可以利用离群点检测分析运动员的统计数据,以发现异常的运动员。
1) 离群点的成因
离群点的主要成因有:数据来源于不同的类、自然变异、数据测量和收集误差。
2)离群点的类型
对离群点的地址分类如下表所示:
分类标准 | 分类名称 | 分类描述 |
从数据范围 | 全局离群点和局部离群点 | 从整体来看,某些对象没有离群特征,但是从局部来看,却显示了一定的离群性 |
从数据类型 | 数值型离群点和分类型离群点 | 这是以数据集的属性类型进行划分的 |
从属性的个数 | 一维离群点和多维离群点 | 一个对象可能有一个或多个属性 |
常用离群点检测方法:基于统计,基于邻近度,基于密度,基于聚类。
基于统计模型的离群点检测方法需要满足统计学原理,如果分布已知,则检验可能非常有效。甚至邻近度的离群点检测方法比统计学方法更一般、更容易使用,因为确定数据集有意义的邻近度比确定它的统计分布更容易。基于密度的离群点检测与基于邻近度的离群点检测密切相关,因为密度常用邻近度定义。
1. 基于模型的离群点检测方法
通过估计概率分布的参数来建立一个数据模型,如果一个数据对象不能不能很好的跟该模型拟合,即如果它很可能不服从该分布,则它是一个离群点。
1)一元正态分布中的离群点检测
正态分布是统计学中最常用的分布之一。N(0,1)的数据对象出现在该分布的两边尾部的机会很小,因此可以用它作为检测数据对象是否是离群点的基础。数据对象落在三倍标准差中心区域之外的概率仅有0.0027。
2.离群点常用检测方法
先将所有数据对象放入正常数据集,这时离群点为空集;再用一个迭代过程将数据对象从正常数据集转移到离群点集,只要该转移能提高数据集的总似然。
3. 基于聚类的离群点检测方法
聚类分析用于发现局部强相关的对象组,而异常检测用来发现不与其他对象强相关的对象。因此,聚类分析非常自然的可以用于离群点检测。
1)丢弃远离其他簇的小簇
一种利用聚类检测离群点的方法是丢弃远离其他簇的小簇。通常,该过程可以简化为丢弃小于其个最小阈值的所有簇。
这个方法可以和其他任何聚类计数一起使用,但是需要最小簇大小和小簇与其他簇之间距离的阈值。而且这种方案对簇个数的选择高度敏感,使用这个方案很难将离群点得分附加到对象上。
2)基于原型的聚类
另一种更系统的方法,首先聚类所有对象,然后评估对象属于簇的程度。在这种方法中,可以用对象到它的簇中心的距离来度量属于簇的程度。特别地,如果删除一个对象导致该目标的显著改进,则可将该对象视为离群点。
对于基于原型的聚类,评估对象属于簇的程度主要有两种方法:一是度量对象到簇原型的距离,并用它作为该对象的离群点得分;二是考虑到簇具有不同的密度,可以度量簇到原型的相对距离,相对距离是点到质心与簇中所有点到质心距离的中位数之比。
基于聚类的离群点检测改进:
1)离群点对初始聚类的影响:通过聚类检测离群点时,离群点会影响聚类结果。为了处理该问题,可以使用如下方法:对象聚类,删除离群点,对象再次聚类
2)还有一种更复杂的方法:取一组不能很好的拟合任何簇的特殊对象,这组对象代表潜在的离群点。随着聚类过程的进展,簇在变化。不再强属于任何簇的对象被添加到潜在的离群点集合;而当前在该集合中的对象被测试,如果它现在强属于一个簇,就可以将它从潜在的离群点集合中移除。聚类过程结束时还留在该集合中的点被分类为离群点。
对象是否被认为是离群点可能依赖于簇的个数。该问题也没有简单的答案。一种策略是对于不同的簇个数重复该分析;另一种方法是找出大量小簇,其想法是:
1)较小的簇倾向于更加凝聚;
2)如果存在大量小簇时一个对象是离群点,则它多半是一个真正的离群点。
相关文章推荐
- 数据挖掘之Apriori算法详解和Python实现代码分享
- 详解BI/数据分析/数据挖掘/业务分析概念 7fe0
- Sedgewick之巨著《算法》,与高德纳TAOCP一脉相承
- 普通最小二乘法的推导证明
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用2
- 数据挖掘项目的特征和关键环节
- 聚类算法总结
- 一位数据挖掘成功人士给数据挖掘在读研究生的建议
- 数据挖掘网上资料大全
- 数据挖掘技术与用户知识获取
- Data mining 数据挖掘
- 数据挖掘
- 大数据,且行且思( 文/ 占超群)
- HUNTER
- kmeans python版
- 数据挖掘-聚类-K-means算法Java实现
- 数据挖掘书籍
- 浅谈R语言的面向对象编程
- Python3和2常用语句的语法区别1.0
- 基于R的xgboost