我们如何在 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下载我的观察结果并自己查看结果。