kNN算法python代码学习2-手写识别系统
来源:互联网 发布:sql中的distinct 编辑:程序博客网 时间:2024/05/22 11:33
构造的系统能识别数字0到9,已经将图像转换为文本格式。
为了使用之前构造的分类器,要将图像格式化处理为一个向量。
def img2vector(filename): returnVect = zeros((1,1024)) fr = open(filename) for i in range(32): #图片大小为32*32 lineStr = fr.readline() for j in range(32): returnVect[0,32*i+j] = int(lineStr[j]) return returnVect
我们得到了分类器可以识别的数据格式,接下来就要将数据输入到分类器,对分类器的准确率进行测试:
def handwritingClassTest(): hwLabels = [] trainingFileList = listdir('trainingDigits')#使用此函数之前要将from os import listdir写在文件开头 m = len(trainingFileList) trainingMat = zeros((m,1024))#每一行代表一个图片数据 for i in range(m): fileNameStr = trainingFileList[i] fileStr = fileNameStr.split('.')[0] classNumStr = int(fileStr.split('_')[0]) #通过两次split获得分类数字(label) hwLabels.append(classNumStr) trainingMat[i,:] = img2vector('trainingDigits/%s'% fileNameStr) testFileList = listdir('testDigits') errorCount = 0.0 mTest = len(testFileList) for i in range(mTest): fileNameStr = testFileList[i] fileStr = fileNameStr.split('.')[0] classNumStr = int(fileStr.split('_')[0]) vectorUnderTest = img2vector('testDigits/%s' % fileNameStr) classifierResult = classify0(vectorUnderTest, trainingMat, hwLabels, 3)#由于文件中的值都在0和1之间,所以不再需要归一化 print 'the classifier came back with: %d, the real answer is: %d'%(classifierResult,classNumStr) if classifierResult != classNumStr: errorCount += 1.0 print '\nthe total number of errors is: %d' % errorCount print '\nthe total error rate is: %f' % (errorCount/float(mTest))
命令行中输入:
>>> reload(kNN)<module 'kNN' from 'C:\Users\mrzhang\Desktop\prac\python\kNN.py'>>>> kNN.handwritingClassTest()
测试结果为:
the classifier came back with: 0, the real answer is: 0the classifier came back with: 0, the real answer is: 0.....省略一些the classifier came back with: 9, the real answer is: 9the classifier came back with: 9, the real answer is: 9the total number of errors is: 11the total error rate is: 0.011628
得到的错误率为1.16%。
提高计算效率?KD树
0 0
- kNN算法python代码学习2-手写识别系统
- KNN算法 手写识别 python
- Python机器学习实战之kNN手写识别系统
- Python 手写数字识别-knn算法应用
- Python实现KNN算法手写识别数字
- Python实现knn算法手写数字识别
- KNN算法实现手写识别系统
- 机器学习--knn手写数字识别系统
- KNN算法-手写识别
- 【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库
- 【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库
- 【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库
- 【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库
- 使用Knn算法实现手写数字识别系统(附带jpg转txt代码)
- 【Python】基于kNN算法的手写识别系统的实现与分类器测试
- knn-2 利用knn算法实现手写数字识别
- 机器学习实战k近邻算法(kNN)应用之手写数字识别代码解读
- 机器学习实战笔记——基于KNN算法的手写识别系统
- 第三周项目1 顺序表的基本运算
- redis 的两种持久化方式及原理
- Android 代码混淆
- Quartz.net Could not initialize scheduler Scheduler already exists.
- 数据加密介绍<1>
- kNN算法python代码学习2-手写识别系统
- android.断开SVN连接 清理.svn文件夹
- PAT研究生入学考试2015.03第三题Insertion or Heap Sort (25) 题解
- iOS开发技术分享】协议与代理
- Errors & Logging
- js 数组sort()
- 计划看一本英文版的Python基础教程
- 第四周-项目4-建立双链表算法库
- 第三周项目二 建设“顺序表”的算法库