关于MATLAB中{k-means聚类的查询

时间:2016-02-12 09:34:29

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

我有非常大量的矩阵形式的数据。我已经在MATLAB R2013a中使用k-means聚类对其进行了聚类。我想要形成每个簇的质心的精确坐标。是否可以使用任何公式或其他任何东西?

我想找出每个聚类的质心,这样每当一些新数据到达矩阵时,我就可以计算它与每个质心的距离,以便找出新数据所属的聚类

我的数据本质上是异构的。因此,很难找出每个群集的平均数据。所以,我正在尝试编写一些代码来自动打印质心位置。

2 个答案:

答案 0 :(得分:1)

在MATLAB中,使用

[idx,C] = kmeans(..) 

而不是

idx = kmeans(..) 

根据documentation

  

[idx,C] = kmeans(..)返回k-by-p矩阵C中的k个群集质心位置。

答案 1 :(得分:0)

将质心简单地评估为分配给该群集的所有点坐标的平均值。

如果您有分配{point; cluster},您可以轻松评估质心:假设您有一个给定n点的给定群集,这些点为a1,a2,...,an。您可以使用以下方法评估此类群集的质心:

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

显然,您可以循环运行此过程,具体取决于您的数据结构(即分配点/质心)的组织方式。