2011-10-30 45 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