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