2011-10-30 48 views
1

我正在寻找一个k-means的实现,它将在每行数据所属的位置出现。K均值编码实现

我发现了其他链接,如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

其实你链接显示了如何让每一行的簇索引。您还应阅读[KMEANS(HTTP的文档页面中的问题的答案:// WWW。 mathworks.com/help/toolbox/stats/kmeans.html)功能 – Amro

+0

看看我的帖子 - https://stackoverflow.com/questions/9859213/k-means-algorithm-with-arbitrary-distance-function- MATLAB的切比雪夫距离/ 45223789。 – Royi

回答

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