這里我們一步步的構造使用k-近鄰分類器的手寫識別系統,為了簡單起見,這里構造的系統只能識別數字0到9,參考圖2-6,需要識別的數字已經使用圖形處理軟件,處理成具有相同的色彩和大小:寬高是32像素*32像素的黑白圖形。盡管采用文本格式存儲圖形不能有效地利用內存空間,但是為了方便理解,我們還是將圖像轉化為文本格式。
1.1,使用k-近鄰算法的手寫識別系統步驟
(1)收集數據:提供文本文件
(2)準備數據:編寫函數classify0(),將圖像格式轉換為分類器使用的list格式
(3)分析數據:在Python命令提示符中檢查數據,確保它符合要求
(4)訓練算法:此步驟不適用與k-近鄰算法
(5)測試算法:編寫函數使用提供的部分數據集作為測試樣本,測試樣本與非測試樣本的區別在于測試樣本是已經完成分類的數據,如果預測分類與實際類別不同,則標記為一個錯誤
(6)使用算法:本例沒有完成此步驟,如果感興趣的話,可以構建完整的應用程序,從圖形中提取數字,并完成數字識別
1.2,準備數據:將圖像轉換為測試向量
實際圖形存儲在源碼的兩個子目錄中:目標trainingDigits中包含了大約2000個例子,每個例子如圖2-6所示,每個數字大約有200個樣本;目錄testDigits中包含了大約900個測試數據,我們使用目錄trainingDigits中的數據訓練分類器,使用目錄testDigits中的數據測試分類器的效果,兩組數據沒有覆蓋,你可以檢查一下這些文件夾的文件是否符合要求。
以上內容為大家介紹了基于PythonK-近鄰算法的手寫識別系統,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。