機器學習之路:python k均值聚類 KMeans 手寫數字


 

python3 學習使用api

使用了網上的數據集,我把他下載到了本地

可以到我的git中下載數據集: https://github.com/linyi0604/MachineLearning

代碼:

 1 import numpy as np
 2 import pandas as pd
 3 from sklearn.cluster import KMeans
 4 from sklearn import metrics
 5 
 6 '''
 7 k均值算法:
 8     1 隨機選擇k個樣本作為k個類別的中心
 9     2 從k個樣本出發,選取最近的樣本歸為和自己同一個分類,一直到所有樣本都有分類
10     3 對k個分類重新計算中心樣本
11     4 從k個新中心樣本出發重復23,
12         如果據類結果和上一次一樣,則停止
13         否則重復234
14         
15 '''
16 '''
17 該數據集源自網上 https://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/
18 我把他下載到了本地
19 訓練樣本3823條, 測試樣本1797條
20 圖像通過8*8像素矩陣表示共64個維度,1個目標維度表示數字類別
21 '''
22 
23 # 1 准備數據
24 digits_train = pd.read_csv("./data/optdigits/optdigits.tra", header=None)
25 digits_test = pd.read_csv("./data/optdigits/optdigits.tes", header=None)
26 # 從樣本中抽取出64維度像素特征和1維度目標
27 x_train = digits_train[np.arange(64)]
28 y_train = digits_train[64]
29 x_test = digits_test[np.arange(64)]
30 y_test = digits_test[64]
31 
32 # 2 建立模型
33 # 初始化kMeans聚類模型 聚類中心數量為10個
34 kmeans = KMeans(n_clusters=10)
35 # 聚類
36 kmeans.fit(x_train)
37 # 逐條判斷每個測試圖像所屬的聚類中心你
38 y_predict = kmeans.predict(x_test)
39 
40 
41 # 3 模型評估
42 # 使用ARI進行性能評估 當聚類有所屬類別的時候利用ARI進行模型評估
43 print("k均值聚類的ARI值:", metrics.adjusted_rand_score(y_test, y_predict))
44 '''
45 k均值聚類的ARI值: 0.6673881543921809
46 '''
47 # 如果沒有聚類所屬類別,利用輪廓系數進行評估

 


免責聲明!

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



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