一般方法异常值检测

数据挖掘 机器学习 统计数据 异常检测 离群值
2022-02-23 08:39:07

什么是不假设数据中有任何潜在分布的异常值检测的一般方法?我有一个包含伦敦租金奖品的数据集,以及它们的位置、卧室、客厅和浴室的数量。我想识别这些数据中的异常值,其中一些变量是离散的,而其中一些是连续的。关于如何做到这一点的任何想法?

2个回答

您可以使用基于邻近度的异常值检测方法。这些方法分为 2 个不同的类别,1)基于集群,2)基于距离。

如果一个点到聚类质心的距离很大,则基于聚类的方法会将其定义为异常值。如果您同时拥有分类变量和连续变量,那么确保您使用的聚类方法适用于混合数据类型非常重要。适用于这两种类型的聚类方法包括 k-Prototypes 或 Squeezer。

要使用基于距离的方法,您可以使用 k-最近邻算法,并将异常值定义为与其 k 个邻域的距离远大于正常数据点的数据点。

Dbscan对您来说似乎是一个不错的选择,请查看scikit-learn 实现以进一步发现。

关于是离散的还是连续的,实际上并不重要,您需要看的是规模是否最适合手头的算法(并且scikit-learn有算法来处理)。

另一个技巧是实际查看属性是否适合分布,其中一些可能,并且检测异常值的参数方法更适合该任务。