在k均值聚类中找出聚类质心的坐标

时间:2016-02-17 11:01:52

标签: matlab cluster-analysis k-means unsupervised-learning

我有大量数据。我在我的数据上实现了k-means聚类。它聚集了数据并绘制了具有簇中质心周围数据点的图形。

图表如下:

enter image description here

但是我希望得到打印质心的确切xy坐标,以便我可以计算任何新数据点与质心的距离,以便找出哪个群集新数据将属于。

[ids ctrs] = kmeans(A,19) D = dist([testpoint; ctrs])%testpoint为1x10,D为20x20 [distance testpointID] = min(D(1,2:end)) 我无法理解[distance testpointID] = min(D(1,2:end))实际上做了什么??请帮帮我!!!

2 个答案:

答案 0 :(得分:2)

这是来自 https://www.w3.org/WAI/tutorials/forms/grouping/

[idx,C] = kmeans(___) % returns the k cluster centroid locations
                      % in the k-by-p matrix C.

这意味着您可以使用两个输出参数调用kmeans。第一个将包含您的点的空白,第二个包含您正在寻找的质心位置。

答案 1 :(得分:1)

如果您使用了Matlab函数,那么质心是第二个输出参数。但是,如果您自己实施了K-Means,则必须通过考虑其定义来手动评估这些质心。对于给定的聚类,质心不过是与这种聚类相关的点之间的平均值 如果您有分配{point; cluster},您可以轻松评估质心:假设您有一个给定n点的给定群集,这些点为a1,a2,...,an。您可以使用以下方法评估此类群集的质心:

centroid=(a1+a2+...+an)/n