[英]Scikit-learn kmeans clustering
我應該用一些數據來做kmeans集群實現。 我從http://glowingpython.blogspot.com/2012/04/k-means-clustering-with-scipy.html查看的示例在2列中顯示了他們的測試數據...但是,給出的數據是68個具有78個特征的主題(即68x78矩陣)。 我應該如何為此創建適當的輸入?
我基本上只是嘗試輸入矩陣,但是它似乎並沒有執行我想要的操作……而且我也不知道為什么會這樣做。 我對做什么很困惑。
data = np.rot90(data)
centroids,_ = kmeans(data,2)
# assign each sample to a cluster
idx,_ = vq(data,centroids)
# some plotting using numpy's logical indexing
plot(data[idx==0,0],data[idx==0,1],'ob',
data[idx==1,0],data[idx==1,1],'or')
plot(centroids[:,0],centroids[:,1],'sg',markersize=8)
show()
老實說,我不知道該向您顯示哪種代碼。 否則,它與我鏈接的教程相同。
您的可視化僅使用前兩個維度 。
這就是為什么這些點看起來“不正確”的原因-它們在另一個維度上更接近。
看一下下面的兩個維度:
plot(data[idx==0,2],data[idx==0,3],'ob',
data[idx==1,2],data[idx==1,3],'or')
plot(centroids[:,2],centroids[:,3],'sg',markersize=8)
show()
...對其余的其余所有78個尺寸重復...
在這么多特征下,(平方)歐幾里得距離變得毫無意義,並且k均值結果趨於變得與隨機凸分區一樣好。
為了獲得更具代表性的視圖,請考慮使用MDS將數據投影到2d中以進行可視化。 它只需要68個科目就可以相當快地工作。
請在您的問題中包括可視化。 我們沒有您的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.