【发布时间】:2018-01-26 00:34:37
【问题描述】:
我正在处理一组坐标,并且希望动态地(我有许多组需要通过此过程)了解数据中有多少不同的组。我的方法是应用 k-means 来调查它是否会找到质心并且我可以从那里开始。
当绘制一些具有 6 个不同聚类的数据(视觉上)时,k-means 算法会继续忽略两个重要聚类,同时将许多质心放入另一个聚类。
见下图:
红色是坐标数据点,蓝色是 k-means 提供的质心。在这种特定情况下,我选择了 15(任意),但它仍然无法识别右侧的那些数据块,而是在它们之间放置一个中点,同时将 8 放入右上角的集群中。
诚然,右上角的数据点略多一些,但数量不多。
我在 R 中使用标准的 k-means 算法,只输入 x 和 y 坐标。我尝试过标准化数据,但这并没有什么区别。
对于为什么会这样,或者可以应用其他潜在方法来尝试动态了解数据中不同集群的数量有什么想法吗?
【问题讨论】:
-
您可以尝试标准化数据,并增加
iter.max和nstart(可能是iter.max = 500和nstart = 25)?你有机会发布你的数据吗? -
如果您提供带有示例输入数据的reproducible example 会更容易提供帮助,这样我们就可以运行并测试代码以查看发生了什么。
-
这很有效 - 谢谢!
标签: r cluster-analysis k-means