【发布时间】:2015-03-06 20:12:00
【问题描述】:
如何有效地评估标准 matlab k-means 实现的性能。
例如我有一个矩阵 X
X = [1 2;
3 4;
2 5;
83 76;
97 89]
对于每一点,我都有一个黄金标准聚类。假设 (83,76), (97,89) 是第一个簇, (1,2), (3,4), (2,5) 是第二个簇。然后我们运行matlab
idx = kmeans(X,2)
并得到以下结果
idx = [1; 1; 2; 2; 2]
根据名义值,聚类非常糟糕,因为只有 (2,5) 是正确的,但我们不关心名义值,我们只关心聚集在一起的点。因此,我们必须以某种方式确定只有 (2,5) 到达了错误的集群。
对我来说,matlab 中的新手评估聚类性能并不是一项简单的任务。如果您能与我们分享您对如何评估性能的想法,我们将不胜感激。
【问题讨论】:
-
我在 MATLAB 2013a 上运行了你的代码,得到了 idx = [1; 1个; 1个; 2; 2],看起来不错。
-
我在 MATLAB R2012b 中得到与@lanpa 相同的结果。你用的是哪个版本?
-
只是为了比较,使用 R2014a 我得到 [2;2;2;1;1]。
-
结果不是问题的重点,重点是在给定金标准聚类的情况下如何评估matlab k-means的性能。