机器学习训练营——机器学习爱好者的自由交流空间(入群联系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第二十三讲】异常检测相关推荐

  1. 开环直流电机的机械特性_第二十三讲 20直流PWM变换器-电动机系统及开环调速系统机械特性.ppt...

    第二十三讲 20直流PWM变换器-电动机系统及开环调速系统机械特性 谢谢! 本讲结束 * * 电力传动控制系统 上海开放大学 * 第二十三讲 直流PWM变换器-电动机系统及开环调速系统机械特性 * 不 ...

  2. 织梦仿站系列教程第二十三讲——列表页制作(二)

    织梦后台提示用户名不存在 查看数据库用户名被改为spider 织梦仿站系列教程第二十三讲--列表页制作(二) 这一讲,我们讲下列表页的分页代码,先找到如下代码: 865 1 href="ht ...

  3. 第二十三讲 解一阶微分方程组

    例题 {u1′=−u1+2u2u1′=u1−2u2\left\{\begin{matrix}{u_{1}}'=-u_{1}+2u_{2}\\ {u_{1}}'=u_{1}-2u_{2}\end{mat ...

  4. 入门机器学习(十八)--异常检测(Anomaly Detection)

    异常检测(Anomaly Detection) 1. 问题动机(Problem Motivation) 2. 高斯分布(Gaussian Distribution) 3. 算法(Algorithm) ...

  5. 第二十二讲:自尊与自我实现 第二十三讲:总结(完)

    (注:此为课程第二十二课,更新于2017年7月23日.) 今天我们会讲完自尊,然后下节课将是我们这个学期最后一次课.我会总结一下我们讲过的内容,我们讲过的和我们将要讲的内容. 先回顾一下我们讲过的,就 ...

  6. 第二十三讲 狄拉克函数(冲激函数)

    一,脉冲及建立模型 在一个时间区间上的作用等于,如果是恒定的,则 如图: 在小车上作用一个脉冲(一个力使小车左移或右移一段时间),假设时间从0到h,冲量是1(曲线下的面积是1)如图: 假设没有阻尼,弹 ...

  7. Java SE 第二十三讲----static关键字and final关键字

    1.static关键字 [在二十二讲视频中30分钟开始讲授] 2.static修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量:一个对象对该静态成员变量进行了修改,其他 ...

  8. halcon第二十三讲:标定助手标定测量

    1.生成标定板 文件ps格式,可通过ps软件打印出来, 以及标定板的描述文件descr格式 gen_caltab (7, 7, 0.0125, 0.5, 'caltab.descr', 'caltab ...

  9. 第二十三讲 狄拉克函数(冲激函数)(补充)

    四,例题: 如图,假设没有阻尼,弹簧常数,在的瞬间,输入一个冲量A,单位冲量为 建立数学模型: 初始条件:(初始位置),(初始速度) 第一步:两边拉式变换 左边: 代入初始条件:, 左边: 右边:(利 ...

  10. 第二十三讲:访问者模式

    访问者设计模式是最难的设计模式. Object Structure:公园 Element:是一个抽象,可以是一个接口或者是抽象类.是公园的每一个部分的抽象. Concrete Element:实际的元 ...

最新文章

  1. 模板 - Min_25 筛法求素数和
  2. 【剑指Offer】从尾到头打印链表
  3. [云炬创业学笔记]第一章创业是什么测试9
  4. Python内置函数之--open
  5. Reveal.js:把你的 Markdown 文稿变成 PPT
  6. tfs2015 生成与发布 配置
  7. 使用 Solr 构建企业级搜索服务器
  8. 软件设计模式与体系结构 期末课后题
  9. c++11多线程编程 整理(五) 原子量 atomic
  10. php 图片裁剪后保存,php – 如何保存裁剪的图像
  11. Eplan Electric P8 2.7安装流程
  12. android viewpager中每个view,ViewPager系列之 打造一个通用的ViewPager
  13. vs code git 编辑器中拉取(pull) 的时候报错 [rejected] v1.0.0 -> v1.0.0 (would clobber existing tag)
  14. Java EE小知识
  15. electron-vue起步
  16. 2021年五月节日活动营销指导方案
  17. Teigha开发读取CAD文字信息出现偏移
  18. 频率分辨率的一些分析
  19. 《黑马程序员》 初识黑马
  20. 分析《家园2》《家园》的低效原因

热门文章

  1. IRF之LACP-MAD检测
  2. web安全day6:IIS之WEB服务器
  3. linux apache访问日志,linux分析apache日志获取最多访问的前10个IP
  4. IPv6 gre隧道、路由协议综合实验(华为设备)
  5. 树、森林、以及二叉树之间的转化
  6. 教你大数据必修三大技能 快快记录下来
  7. 如何实现一个简单的熔断以及Hystrix原理分析
  8. PHP 7.0 5.6 下安裝 phpLDAPadmin 发生错误的修正方法
  9. 求助:使用foreach函数获取到后台数据时未在表格上渲染的问题
  10. firewall防火墙的规则添加