机器学习中的异常值检测

异常值检测是机器学习中重要的一部分,它的任务是发现与大部分其他对象显著不同的对象。大部分机器学习过程都将这种差异信息视为噪声而丢弃。
异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称离群点,异常值的分析也称为离群点的分析。在进行机器学习过程中,需要对数据集进行异常值剔除或者修正,以便后续更好地进行信息挖掘。对于异常值的处理,3σ原则是最常使用的一种处理数据异常值的方法。那么,什么叫3σ原则呢?3σ原则,又叫拉依达原则,它是指假设一组检测数据中只含有随机误差,需要对其进行计算得到标准偏差,按一定概率确定一个区间,对于超过这个区间的误差,就不属于随机误差而是粗大误差,需要将含有该误差的数据进行剔除。其局限性:仅局限于对正态或近似正态分布的样本数据处理,它是以测量次数充分大为前提(样本>10),当测量次数少的情形用准则剔除粗大误差是不够可靠的。在测量次数较少的情况下,最好不要选用该准则。

3σ原则:

  • 数值分布在(μ-σ,μ+σ)中的概率为0.6827
  • 数值分布在(μ-2σ,μ+2σ)中的概率为0.9545
  • 数值分布在(μ-3σ,μ+3σ)中的概率为0.9973
    其中,μ为平均值,σ为标准差。一般可以认为,数据Y的取值几乎全部集中在(μ-3σ,μ+3σ)区间内,超出这个范围的可能性仅占不到0.3%,这些超出该范围的数据可以认为是异常值。
    在实验科学中有对应正态分布的三西格马定律(three-sigma rule of thumb),是一个简单的推论,内容是“几乎所有”的值都在平均值正负三个标准差的范围内,也就是在实验上可以将99.7%的机率视为“几乎一定”。不过上述推论是否有效,会视探讨领域中“显著”的定义而定,在不同领域,“显著”(significant)的定义也随着不同,例如在社会科学中,若置信区间是在正负二个标准差(95%)的范围,即可视为显著。但是在粒子物理中,若是发现(英语:Discovery (observation))新的粒子,置信区间要到正负五个标准差(99.99994%)的程度。
    在不是正态分布的情形下,也有另一个对应的三西格马定律(three-sigma rule),即使是在非正态分布的情形下,至少会有88.8%的机率会在正负三个标准差的范围内,这是依照切比雪夫不等式的结果。若是单模分布(unimodal distributions)下,正负三个标准差内的机率至少有95%,若一些符合特定条件的分布,机率至少会到98% 。
    机器学习中的异常值检测_第1张图片
    Python实现步骤具体步骤如下:
  1. 首先需要保证数据列大致上服从正态分布;
  2. 计算需要检验的数据列的平均值和标准差;
  3. 比较数据列的每个值与平均值的偏差是否超过3倍,如果超过3倍,则为异常值;
  4. 剔除异常值,得到规范的数据。

机器学习中的异常值检测_第2张图片
还有什么问题可以留言互动哦!!期待交流!!

你可能感兴趣的:(机器学习,统计学,数据分析,python)