我有大量数据。我在我的数据上实现了k-means聚类。它聚集了数据并绘制了具有簇中质心周围数据点的图形。
图表如下:
但是我希望得到打印质心的确切x
和y
坐标,以便我可以计算任何新数据点与质心的距离,以便找出哪个群集新数据将属于。
[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))实际上做了什么??请帮帮我!!!
答案 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