详细内容或原文请订阅后点击阅览
我们在真实数据集上使用了 5 种离群值检测方法:它们对 96% 的标记样本不一致
在至少通过一种方法标记的 816 种葡萄酒中,只有 32 种进入了一致名单。这些酒有一些共同点。
来源:KDnuggets简介
所有关于数据科学的教程都使得检测异常值显得非常容易。删除所有大于三个标准差的值;仅此而已。但是,一旦您开始使用分布倾斜的实际数据集,利益相关者就会问:“您为什么删除该数据点?”你突然意识到你没有一个好的答案。
所以我们进行了一个实验。我们在真实数据集(6,497 种葡萄牙葡萄酒)上测试了五种最常用的异常值检测方法,以找出:这些方法是否产生一致的结果?
他们没有。事实证明,我们从分歧中学到的东西比我们从教科书中学到的任何东西都更有价值。
我们将此分析构建为交互式 Strata 笔记本,您可以使用 StrataScratch 上的数据项目将其用于自己的实验。您可以在此处查看并运行完整代码。
设置
我们的数据来自葡萄酒质量数据集,可通过 UCI 的机器学习存储库公开获取。它包含 6,497 种葡萄牙“Vinho Verde”葡萄酒(1,599 种红葡萄酒,4,898 种白葡萄酒)的理化测量值,以及专家品酒师的质量评级。
我们选择它有几个原因。这是生产数据,而不是人工生成的数据。分布是倾斜的(11 个特征中的 6 个具有倾斜度 \( > 1 \)),因此数据不符合教科书假设。通过质量评级,我们可以检查检测到的“异常值”是否在具有异常评级的葡萄酒中出现得更多。
以下是我们测试的五种方法:
发现第一个惊喜:多次测试夸大结果
在我们可以比较方法之前,我们遇到了困难。对于 11 个特征,简单的方法(根据至少一个特征的极值标记样本)产生了极其夸大的结果。
IQR 将约 23% 的葡萄酒标记为异常值。 Z 得分约为 26%。
数学很简单。如果每个特征具有“随机”极值的概率小于 5%,则具有 11 个独立特征:
