使用马氏距离发现异常点

8 sec read

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

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

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

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

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

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

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

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

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

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

原文链接:

打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

Pandas学习笔记:Excel、CSV文件的读取与导出

在使用Pandas处理数据时,常见的读取数据的方式时从Excel或CSV文件中获取,另外有时也会需要将处理完的数据输出为Excel或CSV文件。今天就一起来学习下Pandas常见的文件读取与导出的方法。
2 min read

Pandas学习笔记之数据类型

Pandas是建立在Numpy上,并与其他第三方库在科学运算环境中有较好兼容性的包。其最大的特色在于提供灵活直观的数据结构来处理关联和有标签的数据。如果从底层视角观察Pandas,可以把它看成增强版的NumPy结构化数据,行列都不再只是简单的整数索引,还可以 ...
1 min read

Excel比较多列并取获最小值或最大值取列名

最近在Excel中分析数据的时候需要要比较多列数据,并返回列中最小值所在列的列名,具体场景如下:
2 sec read

Leave a Reply

Your email address will not be published. Required fields are marked *