python实战:sklearn的KNN算法实现手写数据的分类
2018-03-06 12:18
776 查看
from numpy import * import pandas as pd import os from sklearn.neighbors import KNeighborsClassifier as knn def img_to_vector(filename): #数据集已经是32*32矩阵格式,保存于txt中,此函数实现读取32*32数据并存于1*1024的list矩阵中 fr=open(filename) returnVector=zeros((1,1024)) all_lines=fr.readlines() for i in range(len(all_lines)): now_line=all_lines[i] for j in range(32): returnVector[0,i*32+j]=int(now_line[j]) return returnVector def classifyHandWriting(k): hwLabels=[] fileNameList = os.listdir('/Users/me/PycharmProjects/untitled4/trainingDigits') num_of_trainingFiles = len(fileNameList) trainingMat=zeros((num_of_trainingFiles,1024)) for i in range(num_of_trainingFiles): fileNameStr=fileNameList[i] fileNameNum=fileNameList[i].split('.')[0] Num_result=fileNameNum.split('_')[0] hwLabels.append(int(Num_result)) file_name='/Users/me/PycharmProjects/untitled4/trainingDigits/'+fileNameStr trainingMat[i,:]=img_to_vector(file_name) model=knn(n_neighbors=k,algorithm='auto') #建立knn模型 model.fit(trainingMat,hwLabels)。 #对模型输入训练集和训练集的分类结果 testFileNameList=os.listdir('/Users/me/PycharmProjects/untitled4/testDigits') #读取测试集 num_of_testingFiles=len(testFileNameList) testingMat=zeros((num_of_testingFiles,1024)) count_error=0。#统计分类失败的个数 for j in range(num_of_testingFiles): testNameStr=testFileNameList[j] testfileNumName=testNameStr.split('.')[0] test_real_result=int(testfileNumName.split('_')[0]) test_file_name='/Users/me/PycharmProjects/untitled4/testDigits/'+testNameStr inX=img_to_vector(test_file_name) predict_result=int(model.predict(inX)[0]) #将测试集输入进行预测 print("测的结果是%s,而实际是%s"%(predict_result,test_real_result)) if predict_result!=test_real_result: count_error=count_error+1.0 print("总数是:%s,测试错误数量是%s"%(num_of_testingFiles,count_error)) print("错误率是%s"%((count_error*1.0)/num_of_testingFiles)) classifyHandWriting(9)
阅读更多
相关文章推荐
- KNN分类算法原理与Python+sklearn实现根据身高和体重对体型分类
- 数据挖掘 --- Python实现KNN算法项目 - 水果分类
- 数据挖掘(Python)——利用sklearn进行数据挖掘,实现算法:svm、knn、C5.0、NaiveBayes
- 机器学习实战python3 K近邻(KNN)算法实现
- KNN(k-近邻)分类算法讲解与实现(python)
- KNN分类算法及python代码实现
- 在opencv3中实现机器学习算法之:利用最近邻算法(knn)实现手写数字分类
- 数据挖掘 --- Python实现KNN算法项目-约会推荐算法
- kNN分类算法python实现
- 机器学习实战_kNN算法python3.6实现与理解
- 机器学习与数据挖掘-K最近邻(KNN)算法的实现(java和python版)
- 用Python开始机器学习(4:KNN分类算法) sklearn做KNN算法 python
- 基于qt和opencv3实现机器学习之:利用最近邻算法(knn)实现手写数字分类
- python数据挖掘实践第一章 KNN算法,以及算法的实现
- Python+sklearn使用支持向量机算法实现数字图片分类
- 【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库
- K-Nearest Neighbor(KNN) 最邻近分类算法及Python实现方式
- 【机器学习实战-kNN:手写识别】python3实现-书本知识【3】
- 【机器学习实战-kNN:约会网站约友分类】python3实现-书本知识【2】
- 【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库