使用马氏距离发现异常点

先前学习了很对的距离计算方法,今天从网上学习到了一篇使用马氏距离发现异常数据的文章,摘录下来,供以后复习。

假设有一个关于身高和体重的数据:

将这些点画成散点图,你就可以直观的看到异常点,例如,我们假设与数据中心偏离大于2的即为异常值,则:

身高为175cm的这个数据点(图中右下角)并没有被标记为异常点,它与数据中心的标准偏差低于2,但是从图中直观的发现的它偏离身高、体重的线性关系,可以说它才是真正的离群点。

下面我们使用马氏距离求解:

上面的代码根据马氏距离检测离群值得两个极端点。这个技术在高维也是如此,下面我们举一个3维中的例子:

你也可以通过这种方式移除掉5%的最有可能是异常点的数据:

这种方法通常可以快速地检查你的分析结果是否受到异常值的影响。你可以先在整个数据集上运行,然后再通过该方法去掉异常值后再分析一遍,若两次有较大的差距,那你就该考虑使用一个更健壮的分析方法了。

注意,当你的数据表现出非线性关系时,你可要谨慎使用该方法了,马氏距离仅仅把他们作为线性关系处理。例如下面的例子:

由于数据集的变量之间的关系是非线性的,位于中间的最明显的离群值没有被检测到。

原文链接:

微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

Python检验数据是否正态分布

判断数据是否符合正态分布,比如使用3-sigma判断数据异常前,首先需要确定的是数据是否符合正态分布。今天一起

数据探索Pandas-Profiling与Dataprep.…

在使用数据前,我们首先要做的事观察数据,包括查看数据的类型、数据的范围、数据的分布等。Pandas-Profi

开源指标可视化工具Graphite

Graphite 是处理可视化和指标数据的优秀开源工具。它有强大的查询 API 和相当丰富的插件功能设置。事实

发表评论

电子邮件地址不会被公开。 必填项已用*标注