1
X=[1 0 1 0 0 1 1 1;
0 0 0 1 1 0 1 0;
1 1 0 1 0 1 0 1;
1 0 1 0 1 0 1 0;
0 0 0 0 1 1 1 0;
1 1 1 0 0 0 1 1;
1 0 1 0 1 1 1 0;
0 1 0 1 1 0 1 1];
[IDX,C] = kmeans(X,3, 'distance', 'hamming')
我想測試如何使用漢明距離對二進制數據進行聚類因此,在上面的代碼中,我隨機分配了X個二進制值的矩陣。但問題是,我的質心是十進制值。就像我在下面顯示的那樣。爲什麼在MATLAB中使用海明距離進行聚類會給出十進制的質心?
C=
1.0000 1.0000 1.0000 0 0 1.0000 1.0000 1.0000
0 0.5000 0 1.0000 1.0000 0 1.0000 0.5000
1.0000 0 0.5000 0 1.0000 1.0000 1.0000 0
爲什麼答案是0.5?我希望質心也是二元的。由於二進制數據,也可以繪製沒有重疊的羣集?
解決了這個問題。謝謝。 – user2152280 2013-03-10 08:33:43
你知道在使用漢明距離的情況下matlab如何進行更新步驟嗎? – Dror 2015-04-20 13:10:32
@Dror我不確定你在問什麼。它只決定數據空間中距離的計算方式;如果使用漢明距離,則距離(引自[官方文檔](http://www.mathworks.com/help/stats/kmeans.htm):'......不同位的比例。每個質心是該組中點的分量平均值。)。 – 2015-04-20 13:22:43