Python筆記11------一個K-means聚類的小例子


#導入scipy庫,庫中已經有實現的kmeans模塊,直接使用,
#根據六個人的分數分為學霸或者學渣兩類
import numpy as np
from scipy.cluster.vq import vq,kmeans,whiten
list1=[88,64,96,85]
list2=[92,99,95,94]
list3=[91,87,99,95]
list4=[78,99,97,81]
list5=[88,78,98,84]
list6=[100,95,100,92]
#將數據組成數組
data=np.array([list1,list2,list3,list4,list5,list6])
#數據歸一化處理
whiten=whiten(data)
#使用kmeans聚類,第一個參數為數據,第二個參數是k類,得到的結果是二維的,所以加一個下划線表示不取第二個值,第一個值為得到的聚類中心,第二個值為損失
centroids,_=kmeans(whiten,2)
#使用vq函數根據聚類中心將數據進行分類,輸出的結果為二維,第一個結果為分類的標簽,第二個結果不需要。
result,_=vq(whiten,centroids)
print(result)

輸出結果:

[0 1 1 0 0 1]

根據數據可以看出0為學渣,1為學霸。

6個人中,1、4、5為學渣,2,3,6為學霸。

以上為使用Scipy中kmeans來求解的。


sklearn

import numpy as np
from sklearn.cluster import KMeans
list1=[88,64,96,85]
list2=[92,99,95,94]
list3=[91,87,99,95]
list4=[78,99,97,81]
list5=[88,78,98,84]
list6=[100,95,100,92]
#將數據組成數組
data=np.array([list1,list2,list3,list4,list5,list6])
#采用fit函數和predict函數
kmeans=KMeans(n_clusters=2).fit(data)
pred=kmeans.predict(data)
print(pred)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM