K-means编码实现

时间:2011-10-30 03:17:44

标签: matlab k-means

我正在寻找k-means的实现,它将在每行数据所属的位置。

我找到了其他链接,例如Matlab:K-means clustering 但他们没有帮助。

所以我正在寻找这样的东西。如果我的数据如下

1, 2, 4, 5, 6, 7, 8, 9
1, 4, 7, 8, 9, 4, 5, 6

我想知道第1行属于群集A,第2行属于群集B,依此类推。

有人知道Matlab是否可以告诉我,如果是这样的话?如果没有,是否有人可以链接到一些能够做到这一点的代码?

1 个答案:

答案 0 :(得分:4)

是的,来自Statistics Toolbox的kmeans命令会执行此操作。以下是使用随工具箱提供的Fisher Iris数据集的示例。 meas是在150个虹膜上测量的四个解剖变量(花瓣长度,花瓣宽度,萼片长度,萼片宽度)的100x4数据集。输出变量(我在这里称为clusterIndex)告诉您数据集的每一行都属于哪个集群,并且可以用作例如绘图中颜色点的变量。

>> load fisheriris
>> k = 3;
>> clusterIndex = kmeans(meas,3);
>> scatter(meas(:,1),meas(:,2),[],clusterIndex,'filled')

enter image description here