异常值检测方法

您所在的位置:网站首页 箱线图去除异常值matlab 异常值检测方法

异常值检测方法

2024-03-20 15:20| 来源: 网络整理| 查看: 265

简述:

  盒图是在1977年由美国的统计学家约翰·图基(John Tukey)发明的。它由五个数值点组成:最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(max)。也可以往盒图里面加入平均值(mean)。如下图。下四分位数、中位数、上四分位数组成一个“带有隔间的盒子”。上四分位数到最大值之间建立一条延伸线,这个延伸线成为“胡须(whisker)”。

  由于现实数据中总是存在各式各样地“脏数据”,也成为“离群点”,于是为了不因这些少数的离群数据导致整体特征的偏移,将这些离群点单独汇出,而盒图中的胡须的两级修改成最小观测值与最大观测值。这里有个经验,就是最大(最小)观测值设置为与四分位数值间距离为1.5个IQR(中间四分位数极差)。即:

IQR = Q3-Q1,即上四分位数与下四分位数之间的差,也就是盒子的长度。

最小观测值为min = Q1 - 1.5*IQR,如果存在离群点小于最小观测值,则胡须下限为最小观测值,离群点单独以点汇出。如果没有比最小观测值小的数,则胡须下限为最小值。最大观测值为max = Q3 +1.5*IQR,如果存在离群点大于最大观测值,则胡须上限为最大观测值,离群点单独以点汇出。如果没有比最大观测值大的数,则胡须上限为最大值。

通过盒图,在分析数据的时候,盒图能够有效地帮助我们识别数据的特征:

 直观地识别数据集中的异常值(查看离群点)。 判断数据集的数据离散程度和偏向(观察盒子的长度,上下隔间的形状,以及胡须的长度)。 箱型图与3-sigma的搭配

通常,3-sigma经常用到异常值检测中,但是极容易受到个别异常值的影响,使得检测效果不好,因此,將3-sigma与箱型图结合,通过权重系数ratio合理分配两者的重要程度 ,可有效检测异常值,公式如下:

min = Q1 - 1.5*IQR max = Q3 + 1.5*IQR ratio = 0.3 low = 3-sigma*ratio + min*(1-ratio) hight = 3-sigma*ratio + max*(1-ratio) seaborn(sns)调用举例:

当您使用Seaborn时,您可以使用库本身提供的内置数据集之一,也可以加载Pandas DataFrame。

要开始使用内置的Seaborn数据集,可以使用load_dataset()函数。 要查看内置的所有数据集,请点击此处查看 https://github.com/mwaskom/seaborn-data 。

1、小费数据集

import seaborn as sns import matplotlib.pyplot as plt import pandas as pd tips = pd.read_csv("../seaborn-data/tips.csv") sns.violinplot(x="total_bill", data=tips) plt.show()

2、鸢尾花卉数据集

import seaborn as sns import matplotlib.pyplot as plt import pandas as pd iris = pd.read_csv("../ImportData/iris.csv") # iris = sns.load_dataset("iris") sns.swarmplot(x="species", y="petal_length", data=iris) plt.show() 3、泰坦尼克数据集

import seaborn as sns import matplotlib.pyplot as plt import pandas as pd titanic = pd.read_csv("../seaborn-data/titanic.csv") sns.factorplot("class", "survived", "sex", data=titanic, kind="bar", palette="muted", legend=True) plt.show()

参考:

https://www.jianshu.com/p/5ff47c7d0cc9https://www.cnblogs.com/space-place/p/7643480.html


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3