2016-02-17 155 views
-3

我有大量的数据。我已经在我的数据上实现了k-means聚类。它对数据进行聚类,并在集群中绘制具有质心周围数据点的图。找出k-均值聚类中簇的质心坐标

图表如下:

enter image description here

但我想要得到的质心的精确xy坐标印刷,这样我可以从质心计算的新数据点的距离,使以找出新数据所属的集群。 (测试点; ctrs])%测试点为1x10,D将为20x20 [距离测试点ID] = min(D(1,2:结束)), ) 我无法理解[distance testpointID] = min(D(1,2:end))实际上是什么吗?请帮助我!

+0

尝试使用**文档**! –

+1

和**停止重新发布相同的问题**:[关于k-means聚类在MATLAB中的查询](http://stackoverflow.com/questions/35359104/query-regarding-k-means-clustering-in-matlab) –

回答

2

这是从 Matlab help for the kmeans function

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

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

1

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

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