美文网首页机器学习与深度学习
18、如何识别数据中的异常值

18、如何识别数据中的异常值

作者: 攻城狮笔记 | 来源:发表于2019-02-23 19:59 被阅读37次

Bojan Miletic在使用机器学习算法时询问了有关数据集中异常值检测的问题。这篇文章是对他的问题的回答。

离群值

许多机器学习算法对输入数据中属性值的范围和分布敏感。输入数据中的异常值可能会扭曲和误导机器学习算法的训练过程,从而导致更长的训练时间,更不准确的模型以及最终的较差结果。

image.png

异常值
Robert S. Donovan拍摄,保留一些权利

即使在针对训练数据准备预测模型之前,异常值也可能导致误导性表示,进而导致对收集数据的误导性解释。异常值可以在描述性统计中偏离属性值的摘要分布,如平均值和标准差,以及直方图和散点图等图形,压缩数据体。

最后,异常值可以表示与问题相关的数据实例的示例,例如欺诈检测和计算机安全性中的异常。

异常值建模

异常值是极端值,远远超出其他观察值。例如,在正态分布中,异常值可以是分布尾部的值。

识别异常值的过程在数据挖掘和机器学习中有许多名称,例如异常值挖掘,异常值建模和新颖性检测以及异常检测。

在他的书 Outlier Analysis(会员链接)中,Aggarwal提供了一个有用的离群检测方法分类,如下:

  • 极值分析:确定数据底层分布的统计尾部。例如,统计方法,如单变量数据的z分数。
  • 概率和统计模型:从数据的概率模型中确定不太可能的实例。例如,使用期望最大化优化的高斯混合模型。
  • 线性模型:使用线性相关将数据建模到较低维度的投影方法。例如,主成分分析和具有大残差的数据可能是异常值。
  • 基于邻近度的模型:与群集,密度或最近邻分析确定的数据质量隔离的数据实例。
  • 信息理论模型:异常值被检测为数据实例,增加了数据集的复杂性(最小代码长度)。
  • 高维异常值检测:搜索子空间异常值的方法可以在更高维度(维数灾难)中分解基于距离的度量。

Aggarwal评论说,异常模型的可解释性至关重要。对于特定数据实例为何或不是异常值的决策,需要上下文或基本原理。

在他的数据挖掘和知识发现手册(会员链接)的贡献章节中 ,Irad Ben-Gal提出了异常模型的分类,如单变量或多变量,参数和非参数。这是基于已知数据来构造方法的有用方法。例如:

  • 您是否考虑过一个或多个属性中的异常值(单变量或多变量方法)?
  • 您能否假设一个统计分布,从中采集或不采样(参数或非参数)?

入门

有许多方法和很多研究都用于异常检测。首先进行一些假设和设计实验,您可以清楚地观察这些假设对某些性能或准确度测量的影响。

我建议通过极值分析,接近方法和投影方法的步进过程。

极值分析

您无需了解高级统计方法即可查找,分析和过滤数据中的异常值。通过极值分析开始简单。

  • 专注于单变量方法
  • 使用散点图,直方图和框和胡须图可视化数据并查找极值
  • 假设分布(高斯分布)并寻找与平均值相比超过2或3个标准差的值或从第一个或第三个四分位数开始的1.5倍的值
  • 从训练数据集中筛选出异常值候选者并评估您的模型性能

接近方法

一旦探索了更简单的极值方法,请考虑转向基于邻近度的方法。

  • 使用聚类方法识别数据中的自然聚类(例如k均值算法)
  • 识别并标记聚类质心
  • 识别与集群质心具有固定距离或百分比距离的数据实例
  • 从训练数据集中筛选出异常值候选者并评估您的模型性能

投影方法

投影方法应用起来相对简单,并且可以快速突出显示无关的值。

  • 使用投影方法将数据汇总为两个维度(例如PCA,SOM或Sammon的映射)
  • 可视化映射并手动识别异常值
  • 使用来自投影值或码本向量的邻近度量来识别异常值
  • 从训练数据集中筛选出异常值候选者并评估您的模型性能

方法鲁棒于异常值

另一种策略是转向对异常值具有鲁棒性的模型。有强大的回归形式可以最小化中位数最小二乘误差而不是均值(所谓的稳健回归),但计算量更大。还有一些方法,如决策树,对异常值很强。

您可以检查一些对异常值有效的方法。如果存在显着的模型准确性优势,则可能有机会对训练数据中的异常值进行建模和过滤。

资源

有很多网页讨论异常值检测,但我建议阅读一本关于这个主题的好书,更具权威性。即使查看机器学习和数据挖掘的入门书籍也不会对您有用。有关统计学家对异常值的经典处理,请查看:

相关文章

  • 18、如何识别数据中的异常值

    Bojan Miletic在使用机器学习算法时询问了有关数据集中异常值检测的问题。这篇文章是对他的问题的回答。 离...

  • R中的箱线图进阶

    箱线图能够显示出离群点(outlier),离群点也叫做异常值,通过箱线图能够很容易识别出数据中的异常值。 geom...

  • 统计:均值,中位数,众数

    一、异常值是指什么?请列举 1种识别连续型变量异常值的方法? 异常值(Outlier) 是指样本中的个别值,其数值...

  • 从阿里巴巴笔试试题看数据分析师的职业要求

    一、异常值是指什么?请列举1种识别连续型变量异常值的方法? 异常值(Outlier) 是指样本中的个别值,其数值明...

  • 应用:数据预处理-异常值识别

    系统总结了常用的异常值识别思路,整理如下: 空间识别 1.分位数识别代表的执行方法为箱式图: 上四分位数Q3,又叫...

  • 数据处理-利用 python进行异常值分析

    异常值分析是检验数据是否有录入错误数据和不合常理的数据。不加剔除的把异常值代入数据分析过程中,会对结果产生不良影响...

  • 异常值的处理

    概述 异常值分析是检验数据是否有录入错误以及含有不合常理的数据;异常值是指样本中的个别值,其数据明显偏离其余的观测...

  • CIPT扩展知识-生物识别数据的合理使用

    随着IoT设备的大规模普及,生物识别数据的采集和应用变得更加常见,本文介绍了如何生物识别数据在处理过程中的风险及相...

  • 举个栗子!Tableau 技巧(84):使用盒须图查看你的数据分

    关于盒须图如果你想显示一组数据的分布情况:例如:一目了然地理解数据,查看数据如何向某一段偏斜,查看数据中的异常值。...

  • 异常检测

    异常检测工具包识别出不同于输入数据集其他部分的数据点,每个数据点向异常检测模型传递一个异常值(从0到无穷)一描述这...

网友评论

    本文标题:18、如何识别数据中的异常值

    本文链接:https://www.haomeiwen.com/subject/lmtmyqtx.html