Matlab - 高斯混合和模糊 C 均值在高维数据(26 维向量图像)上不如 K 均值准确

Matlab - Gaussian mixture and Fuzzy C-means less accurate than K-means on high-dimensional data (image of 26-dimension vectors)

我从本教程 Texture Segmentation Using Gabor Filters 中获取了 matlab 代码。

为了在对 gabor filters 的结果多维 texture 响应上测试 clustering 算法,我应用了 Gaussian MixtureFuzzy C-means 而不是 K-means 比较他们的结果(所有情况下的簇数 = 2):

原图:

K 均值聚类:

L = kmeans(X, 2, 'Replicates', 5);

GMM 集群:

options = statset('MaxIter',1000);
gmm = fitgmdist(X, 2, 'Options', options);
L = cluster(gmm, X);

模糊 C 均值:

[centers, U] = fcm(X, 2);
[values indexes] = max(U);

在这种情况下,我发现奇怪的是 K-means 聚类比使用 GMMFuzzy C-means.

提取的聚类更准确

任何人都可以向我解释一下作为 GMMFuzzy C-means 分类器是什么导致聚类不太准确?

换句话说,GMMFuzzy C-means 聚类对数据的维数比 K-means 更敏感?

很高兴评论有用,这是我的回答形式的观察。

这些方法中的每一个都对初始化敏感,但是 k-means 通过使用 5 'Replicates' 和更高质量的初始化(k-means++ 作弊 ).其余方法似乎使用单个随机初始化。

k-meansGMM 如果你强制球形协方差。所以从理论上讲,它不应该做得更好(如果真正的协方差实际上是球形的,它可能会做得更好)。

我认为大部分差异都归结为初始化。您应该能够通过使用 k-means 结果作为其他算法的初始条件来对此进行测试。或者正如您所尝试的那样,运行 多次使用不同的随机种子并检查 GMMFuzzy C-means 中的变化是否比 k-means.

中的变化更多