繁体   English   中英

如何使用kmeans生成的聚类中心对新数据进行聚类

[英]How to cluster new data using cluster centers generated by kmeans

我在Matlab中有一些使用kmeans集群中心。

现在有一些新的数据点,我不想使用for循环来比较每个数据点和群集中心之间的距离,因为它太慢了。

那我该怎么办。

尝试使用matlab knnsearch(X,Y),其中X是代表kmeans中心的矩阵,Y是新数据点的集合。

看起来http://www.mathworks.com/help/stats/knnsearch.html

我会做这样的事情。 如果新点存储在坐标与行作为点和列坐标,和您的集群方式也同样储存在手段 ,你想知道哪个集群中的每个点是最接近(在)。 然后:

% compute distance
d2 = repmat(sum(coord.^2,2),1,size(means,1)) + repmat(sum(means.^2,2)',size(coord,1),1) - 2*coord*means';
% Assign to nearest cluster
[~, assigns] = min(d2,[],2);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM