具有不均匀簇的聚类(k均值)

时间:2016-07-28 16:36:52

标签: algorithm machine-learning statistics k-means

我有两组积分。在应用任何聚类技术之前,我确切地知道每个聚类应该属于哪些点,但是标记数据的唯一方法是使用聚类技术,例如k-means。如果我所处的情况似乎令人费解,请不要专注于它,我对k-means这个潜在的具体问题更感兴趣。

假设我的数据看起来像这样(x-y平面上的简单2D点):

enter image description here

我想获得两个点,但是有一个小问题。当我运行k-means算法时,我最终会得到类似的结果:

enter image description here

我应该补充一下这只是一个草拟的例子。

我遇到的问题是,在算法运行之前,如果群集中的点数量极不均匀,那么它在算法群集结束时会产生显着的结果,直至它使数据模糊不清。当然,当群集模糊地靠近在一起时,这只是一个问题,但我想知道是否有一个k-means变体或其他聚类算法可以很好地处理不同群集的群集。我试图找到这样的东西,但我担心我使用了错误的搜索术语,例如"不均匀的k-means群集和#34;和类似的措辞只能得到关于更快的k-means实现和与其他统计分析的组合的论文。

只是为了解决一些问题。我已经多次运行k-means,结果总是上面的草图,两个视觉集群之间有一个集群质心。

如果这只是k-means的一个缺点(我可以看到它是这样)那么我可以接受。

1 个答案:

答案 0 :(得分:2)

K-Means算法的输出很大程度上取决于您选择的初始质心。如果您选择彼此接近的质心,那么您获得的聚类将会偏斜。

此外,如果真实聚类具有不平衡的数据点数,那么通过随机选择初始质心,您很可能从同一聚类中选择初始质心。

因此我建议您尝试选择尽可能远的初始质心。这应该是可能的,因为你的点是2D。

您甚至可以探索单链路或完整链路算法等凝聚聚类方法。

尽管如此,这些算法并不能保证最佳结果,因此您必须满足于某些次优性。

希望这有帮助。