1

我正在寻找一种 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是否可以告诉我,如果可以,怎么做?如果没有,是否有人可以链接到一些能够做到这一点的代码?

4

1 回答 1

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')

在此处输入图像描述

于 2011-10-31T10:37:52.570 回答