对已经聚集的数据进行分组(使用预定义的 x 和 y)

数据挖掘 聚类 无监督学习 特纳
2022-02-02 13:44:57

我有一个已经聚集的数据集(我想保留我的 x 和 y),其中中间显然有一小部分元素不符合预期的模式。

我可以手动选择它们,但我想知道是否有一种方法可以有效地自动化这些元素的选择部分。

就像只使​​用聚类算法的分组部分一样,我一直在尝试使用阈值,但在不会形成圆形聚类的情况下它不会产生好的结果。

已经聚集的数据

2个回答

了解您使用的是哪种聚类技术会很有帮助。

您可以使用

  • 基于分区的聚类:例如 K-Means 聚类,对于异常值不是很好。
  • 基于层次的聚类:产生聚类树(凝聚,分裂)。你得到一个树状图。
  • 基于密度的聚类:生成任意形状的聚类,例如 DBSCAN

如果您正在寻找圆形集群以外的其他东西并且您需要集群内的集群,我会尝试 DBSCAN。它定位高密度区域和单独的异常值,并且可以在集群中找到集群。

如果您使用的是 Python,则可以将 DBSCAN 与 sklearn 一起使用

from sklearn.cluster import DBSCAN 

我希望这会有所帮助!

你说得对,你希望你的聚类告诉你哪些点是最异常的。对于 k-means 聚类,它是离其分配的聚类最远的点。

我认为没有理由期望异常本身会形成一个集群。如果这是您所期望的,您可能需要计算其他内容,例如超出阈值的点的聚类?

还要考虑一个高斯混合聚类,它就像 k-means 一样,只是将聚类分配视为软性和概率性。该模型下的异常值可能更有意义。