【sklearn第二十三讲】异常检测
机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)
很多应用需要能够决定一个新的观测是否同分布于存在的观测。若同分布,则称新观测inlier
; 若不同,则称outlier
. 需要注意两点不同:
novelty detection: 训练数据未受outliers污染,我们感兴趣的是检测新观测里的异常(anomalies).
outlier detection: 训练数据包括outliers, 我们需要拟合训练数据的中心模式,忽略异常观测。
scikit-learn提供了一套用于novelty or outliers detection的机器学习工具。执行策略是从数据无监督地学习:
estimator.fit(X_train)
使用一个预测方法,新的观测能被排序为inliers or outliers:
estimator.predict(X_test)
Inliers标签为1, outliers标签为-1.
Novelty Detection
考虑 nnn 个观测组成的数据集,来自 ppp 个特征的相同分布。现在,我们增加一个新观测到这个数据集里。这个新观测与其它观测同分布吗?我们利用novelty detection工具和方法解决这个问题。
通常需要学习一个初始观测分布的等高线的边界,画在 ppp 维空间里。然后,如果进一步的观测层位于边界界定的子空间里,则将新观测视为与存在的观测同分布;否则,如果它们位于边界外,则认为是带有置信评价的异常。
Outlier Detection
Outlier detection类似与novelty detection, 它的目标是将正常的观测与outliers分隔开。
拟合一个椭圆层
一种普遍的方法是假设正常数据来自一个已知分布,比如正态分布。从这个假设出发,我们通常定义数据的“形状”,将远离该形状区域的观测定义为离群观测。scikit-learn提供一个covariance.EllipticEnvelope对象,拟合一个健壮的协方差估计。这样,拟合了一个中心数据点的椭圆,忽略中心模式之外的点。
例如,假设inlier数据是正态分布,它将以一种健壮的方式估计inlier位置和协方差,不受outliers的影响。来自估计的Mahalanobis距离被用来得出一个离群测度。该策略演示如下:
孤立森林
在高维数据集上做Outlier Detection的一个有效的方法是使用随机森林。Ensemble.IsolationForest
随机选择一个特征,然后在被选特征的最大值和最小值之间随机选择一个分割值,作为孤立观测的阈值。
由于递归分割能够由一棵树结构表示,孤立一个样本所需要的分割数等于从根节点到叶子节点的路径长度。路径长度平均在这些树的森林上,是一个正常测度,作为决策函数。该策略演示如下:
局部异常因子
另一种用在中等规模数据集上的方法是使用局部异常因子(Local Outlier Factor, LOF)算法。neighbors.LocalOutlierFactor
算法计算反映异常程度的分数,称异常因子。异常因子度量一个给定的数据点与它的邻居的局部密度偏差。这个思想的实质是,检测密度低于它的邻居的样本。
实际上,局部密度从k近邻获得。一个观测的LOF分数等于它的k近邻的平均局部密度与自己的局部密度的比率。一个正常的观测的局部密度与它的邻居类似,而异常观测的局部密度相比邻居要小的多。
邻居数k的选择:
大于一个类必须包括的最小对象数。
小于有可能是局部outliers的最大对象数。
实际操作里,这些信息通常是不可利用的。根据经验,通常取n_neighbors=20.
LOF算法的优点是,它同时考虑了数据集的局部和全局属性。即使数据集的异常样本有不同的密度,它的表现也不错。问题并不是样本被如何孤立的,而是它关于周围的邻居是如何孤立的。该策略演示如下:
精彩内容,请关注微信公众号:统计学习与大数据
【sklearn第二十三讲】异常检测相关推荐
- 开环直流电机的机械特性_第二十三讲 20直流PWM变换器-电动机系统及开环调速系统机械特性.ppt...
第二十三讲 20直流PWM变换器-电动机系统及开环调速系统机械特性 谢谢! 本讲结束 * * 电力传动控制系统 上海开放大学 * 第二十三讲 直流PWM变换器-电动机系统及开环调速系统机械特性 * 不 ...
- 织梦仿站系列教程第二十三讲——列表页制作(二)
织梦后台提示用户名不存在 查看数据库用户名被改为spider 织梦仿站系列教程第二十三讲--列表页制作(二) 这一讲,我们讲下列表页的分页代码,先找到如下代码: 865 1 href="ht ...
- 第二十三讲 解一阶微分方程组
例题 {u1′=−u1+2u2u1′=u1−2u2\left\{\begin{matrix}{u_{1}}'=-u_{1}+2u_{2}\\ {u_{1}}'=u_{1}-2u_{2}\end{mat ...
- 入门机器学习(十八)--异常检测(Anomaly Detection)
异常检测(Anomaly Detection) 1. 问题动机(Problem Motivation) 2. 高斯分布(Gaussian Distribution) 3. 算法(Algorithm) ...
- 第二十二讲:自尊与自我实现 第二十三讲:总结(完)
(注:此为课程第二十二课,更新于2017年7月23日.) 今天我们会讲完自尊,然后下节课将是我们这个学期最后一次课.我会总结一下我们讲过的内容,我们讲过的和我们将要讲的内容. 先回顾一下我们讲过的,就 ...
- 第二十三讲 狄拉克函数(冲激函数)
一,脉冲及建立模型 在一个时间区间上的作用等于,如果是恒定的,则 如图: 在小车上作用一个脉冲(一个力使小车左移或右移一段时间),假设时间从0到h,冲量是1(曲线下的面积是1)如图: 假设没有阻尼,弹 ...
- Java SE 第二十三讲----static关键字and final关键字
1.static关键字 [在二十二讲视频中30分钟开始讲授] 2.static修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量:一个对象对该静态成员变量进行了修改,其他 ...
- halcon第二十三讲:标定助手标定测量
1.生成标定板 文件ps格式,可通过ps软件打印出来, 以及标定板的描述文件descr格式 gen_caltab (7, 7, 0.0125, 0.5, 'caltab.descr', 'caltab ...
- 第二十三讲 狄拉克函数(冲激函数)(补充)
四,例题: 如图,假设没有阻尼,弹簧常数,在的瞬间,输入一个冲量A,单位冲量为 建立数学模型: 初始条件:(初始位置),(初始速度) 第一步:两边拉式变换 左边: 代入初始条件:, 左边: 右边:(利 ...
- 第二十三讲:访问者模式
访问者设计模式是最难的设计模式. Object Structure:公园 Element:是一个抽象,可以是一个接口或者是抽象类.是公园的每一个部分的抽象. Concrete Element:实际的元 ...
最新文章
- 模板 - Min_25 筛法求素数和
- 【剑指Offer】从尾到头打印链表
- [云炬创业学笔记]第一章创业是什么测试9
- Python内置函数之--open
- Reveal.js:把你的 Markdown 文稿变成 PPT
- tfs2015 生成与发布 配置
- 使用 Solr 构建企业级搜索服务器
- 软件设计模式与体系结构 期末课后题
- c++11多线程编程 整理(五) 原子量 atomic
- php 图片裁剪后保存,php – 如何保存裁剪的图像
- Eplan Electric P8 2.7安装流程
- android viewpager中每个view,ViewPager系列之 打造一个通用的ViewPager
- vs code git 编辑器中拉取(pull) 的时候报错 [rejected] v1.0.0 -> v1.0.0 (would clobber existing tag)
- Java EE小知识
- electron-vue起步
- 2021年五月节日活动营销指导方案
- Teigha开发读取CAD文字信息出现偏移
- 频率分辨率的一些分析
- 《黑马程序员》 初识黑马
- 分析《家园2》《家园》的低效原因