【发布时间】:2017-03-06 07:48:30
【问题描述】:
我有一组数据,可以分为两组。沿 y 轴的垂直设置和沿 x 轴的水平设置。我试图分别用蓝色和红色绘制它们。但是正如您所看到的,一些蓝色与红色混合在一起。有人可以帮助我使用聚类正确地做到这一点吗?我使用 kmeans 来做到这一点。
[cidx2,cmeans2] = kmeans(minSpikeV,2);
但似乎效果不佳。
【问题讨论】:
-
由于 kmeans 是一种启发式算法,因此有时这是典型的行为(它只保证收敛到某个局部最优值,因为问题是具有多个局部最小值的非凸优化问题;它是 np-hard)。增加更多鲁棒性的经典方法是使用不同的随机种子(多开始)多次聚类。 mpaskov 的回答给出了一些关于如何手动操作的想法(我使用的所有实现都已经提供了开箱即用的功能)
-
这个数据对我来说看起来更适合 DBSCAN,但也许 Matlab k-means 不是很好。您是否尝试在 ELKI 中对数据进行聚类?
-
@Anony-Mousse 那是什么?
-
我首选的集群工具。速度非常快,有很多选项可供选择。在那里尝试 KMeansPlusPlusInitialization,或者最远的点。
-
@Anony-Mousse 非常感谢您的建议。我也会试试的
标签: algorithm matlab sorting cluster-analysis