1、リーダーパケット
インポートのNPとしてnumpyの 輸入オペレータ からのOS インポートLISTDIR から sklearn.neighbors インポートKNNとしてKNeighborsClassifierを %コンフィグZMQInteractiveShell.ast_node_interactivity = 「すべて」
図2に示すように、画像ベクトルを変換する関数の定義
「」「 関数の説明:バイナリイメージ32×32は1x1024ベクターに変換 :パラメータ 名-ファイル名 戻り値: returnVect -バイナリイメージ返す1x1024ベクトル 」、「」 DEFのimg2vector(ファイル名): #は1x1024ゼロベクトル作成 returnVect = NPを。ゼロ((1、1024 )) #オープンファイル のFR = オープン(ファイル名) #1 行を読み取る ための I にレンジ(32 ): #は、リードデータ線 lineStr = fr.readline() #各列Aの最初の32の要素returnVectに添加 するための J でレンジ(32 ): returnVect [0、* Iは、Jを+ 32] = INT(lineStr [J]) #戻り1x1024ベクトル変換 戻り returnVect
3、手書き数字認識システム機能の定義
"" " 関数の説明:デジタルカテゴリーテスト手書き パラメータ: なし 戻りません: なし 。" "" DEF handwritingClassTest(): #のトレーニングセットラベル hwLabels = [] #がtrainingDigitsディレクトリの下にファイル名を返します trainingFileList = LISTDIR(' trainingDigits ' ) #戻りファイルフォルダ数 M = LEN(trainingFileList) #の初期マットトレーニングマトリックス、トレーニングセット trainingMatのnp.zeros =((M 1024 )) #集中ファイル解析されたカテゴリのトレーニングセットから のための I における範囲(M): #は、ファイル名を取得 = fileNameStr trainingFileList [I] #取得した分類番号 classNumber = INT(fileNameStr.split(' _ ' )[0]) #の追加hwLabelsで得られたカテゴリ hwLabels.append(classNumber) #1x1024の各ファイルのデータを保存されたtrainingMatマトリックス trainingMat [I ,:] = img2vector(' trainingDigits / S%'%(fileNameStr)) #建設KNN分類器 いななき= KNN(N_NEIGHBORSの= 3、アルゴリズム= ' 自動' ) #フィットモデル、trainingMatトレーニング行列のために、対応するラベルhwLabels (trainingMat、hwLabels)neigh.fitを #リストtestDigitsディレクトリ内のファイルを返します testFileListがLISTDIR(= 「testDigits 」) #のエラーチェック回数 ERRORCOUNT = 0.0 #のテストデータの数 MTEST = LEN(testFileList) #は、カテゴリ・テスト・セットを解析し、ファイルからテストを分類するための I でレンジ(MTEST): #ファイル名を取得 fileNameStr = testFileList [I] #取得した分類番号 classNumber = INT(fileNameStr.split(' _ ' )[0]) #得られた試験は、トレーニングのために使用1x1024ベクトル設定 vectorUnderTest =をimg2vector(「testDigits / S% '%(FileNameStr)) #得る予測 classifierResult = (vectorUnderTest)neigh.predict #の印刷 印刷が(' 分類が%D \トン本当の結果D%の値を返す"%)(classifierResult、classNumber) IF(classifierResult!= ClassNumberを): ERRORCOUNT + = 1.0 プリント(' 総間違ったデータは%d \ nの誤り率%% F%'%(ERRORCOUNT、ERRORCOUNT / MTEST * 100))
4つの実行結果
もし __name__ == " __main__ " : handwritingClassTest()
データセット住所:
リンクします。https://pan.baidu.com/s/1-F2LyVh63i4yjIwweTYjNg
抽出コード:3gsa
参考:
1、「機械学習本当の」ブック
2、https://github.com/apachecn/AiLearning
3、https://cuijiahua.com/blog/2017/11/ml_1_knn.html
4、機械学習戦闘訓練キャンプの宿題の目の深さ(http://www.deepshare.net/)