這裡我們用knn來分類乙個大點的資料庫,包括資料維度比較大和樣本數比較多的資料庫。這裡我們用到乙個手寫數字的資料庫,這個資料庫包括數字0-9的手寫體。每個數字大約有200個樣本。每個樣本保持在乙個txt檔案中。手寫體影象本身的大小是32x32的二值圖,轉換到txt檔案儲存後,內容也是32x32個數字,0或者1,如下:
資料庫解壓後有兩個目錄:目錄trainingdigits存放的是大約2000個訓練資料,testdigits存放大約900個測試資料。
這裡我們還是新建乙個knn.py指令碼檔案,檔案裡面包含四個函式,乙個用來生成將每個樣本的txt檔案轉換為對應的乙個向量,乙個用來載入整個資料庫,乙個實現knn分類演算法。最後就是實現這個載入,測試的函式。
最後在knn.py所在的目錄下開啟終端,
import knn
knn.testhandwritingclass()
看到最後的輸出結果:
>>> import knn
>>> knn.testhandwritingclass()
step 1: load data...
---getting training set...
---getting testing set...
step 2: training...
step 3: testing...
step 4: show the result...
the classify accuracy is: 98.76%
>>>
演算法修煉 KNN(微高階)
好了,又回來了。在進入本章之前,我們先來學一點東西 那麼我們應該怎樣去尋找好的超引數呢?一般來說有三個方法 領域知識 經驗數值 實驗搜尋。我們的knn也有兩個很重要的超引數 1 k值的選取 2 距離的權重。接下來讓我們尋找最好的k值 首先我本次使用的是digits數字集 digits dataset...
KNN 演算法的例項應用
為了提高給 helen 女士匹配約會物件的成功率,收集了各位男士的以下三種資訊 每年的飛行里程數 玩遊戲所耗時間百分比 每週消費的冰淇淋公升數 約會資料 datingtestset.txt 先看一下資料集的內容 這裡擷取了三行,前三列分別是每年的飛行里程數 玩遊戲所耗時間百分比和每週消費的冰淇淋公升...
機器學習中的kNN及其Python例項
在2006年12月召開的 ieee 資料探勘國際會議上 icdm,international conference on data mining 與會的各位專家選出了當時的十大 資料探勘演算法 top 10 data mining algorithms knn演算法即位列其中。該演算法思路簡潔,但是...