【发布时间】:2011-07-20 14:07:13
【问题描述】:
如何在 Matlab 中实现 K-means 算法而不使用 kmeans(X,k) 语法?
实际上问题在于没有实现算法。请看下图:
我实现了大多数网站提供的算法,例如http://en.wikipedia.org/wiki/Kmeans
1. Give initial values to m1 .. mk
2. Assignment with closest mean
3. Update
我设置了 X 的 4 个观测值(200 个样本),我已经知道这 4 个观测值来自 1 个集群。 因此,根据算法,上述图像的聚类是可以解释的,但事实并非如此。我认为 4 个初始值不应该随机选择。
我还运行了一些其他源代码,例如http://people.revoledu.com/kardi/tutorial/kMean/matlab_kMeans.htm。推导出同样的结果。您可以从http://www.4shared.com/get/IfwUEUBD/Observation.html 下载我的观察结果并亲自查看结果。
【问题讨论】:
-
如果你想知道
kmeans源代码,在MATLAB的命令提示符下输入type kmeans.m。 -
@Ata:算法很简单,描述得很好:en.wikipedia.org/wiki/K-means_clustering。您应该能够自己实现它作为练习。如果您对代码有问题,可以寻求帮助,但表明您已经努力......
-
@Ata:Kmeans算法对初始化很敏感,请看这个相关问题:stackoverflow.com/questions/3657801/…
标签: matlab cluster-analysis k-means