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