使用高度相关的分类数据聚类进行异常检测

数据挖掘 scikit-学习 聚类 分类数据 异常检测
2021-10-02 21:55:52

我的数据有两列,并且都高度相关,例如,如果 column1 的值为 ABC,则 column2 应该是 XYZ,即 ABC-->XYZ。如果 column2 有其他内容,则为异常。同样,有数千种组合。我已经尝试过 KModes 聚类,其中许多聚类 = column1 中的唯一值。然而,每个簇的密度不相等,因此一些高密度的坏数据被归类为正常,低密度的好数据被标记为异常。

我想要一个无监督的算法,我可以强制它使用 column1 作为聚类的主要标准。对于 column1 的每个唯一值,column2 数据出现频率最高的数据就是好数据。休息是异常的。请建议什么是最好的算法以及如何解决这个问题。

2个回答

你的问题实际上是一个回归问题而不是一般的聚类,你寻找远离回归线的值,回归意义上的异常值。因此,拟合回归线并过滤具有最大残差的值,这些值在不遵循两个变量给出的相关结构的意义上是你的“坏”值。

一种选择是计数模式。然后将不太常见的发生模式定义为异常。

计数方法是确定性的,而聚类是概率性的。它可能会解决您的问题。如果没有,它至少会提供汇总统计数据和基线模型。