k近邻算法识别手写数字Python实现
来源:互联网 发布:凤凰金融 大数据 编辑:程序博客网 时间:2024/04/25 18:57
数据集:(参见python实战教程)
训练数据:trainingDigits 2000多个.txt文件
测试数据:testDigits 约900个.txt文件
均为32*32大小
test_handWritting.py:
from numpy import *import osimport knnOperatorimport pdbdef img2vector(filename,d): #d=32 returnVector = zeros((1,d*d)) fr = open(filename) for i in range(d): linstr = fr.readline() for j in range(d): returnVector[0,i*d+j] = int(linstr[j]) return returnVector def handwritingClassTest(filepath,d): trainFilePath = filepath + 'trainingDigits\\' trainFileList = os.listdir(trainFilePath) nTrain = len(trainFileList) trainData = zeros((nTrain,d*d)) trainlabels = [] for i in range(nTrain): trainFilei = trainFileList[i] trainFileName = trainFilePath + trainFilei vector = img2vector(trainFileName,d) trainData[i,:] = vector trainFileClass = trainFilei.split('_')[0] trainlabels.append(trainFileClass) testFilePath = filepath + 'testDigits\\' testFileList = os.listdir(testFilePath) nTest = len(testFileList) k = 4 count = 0 for j in range(nTest): #pdb.set_trace() testFilej = testFileList[j] testFileName = testFilePath + testFilej testSample = img2vector(testFileName,d) test_label = knnOperator.knnOperator(testSample,trainData,trainlabels,k) truth_label = testFilej.split('_')[0] if (truth_label == test_label): count += 1 rate = float(count) / float(nTest) print rate
knnOperator函数参见:http://blog.csdn.net/u013593585/article/details/51284537
主实现:
import test_handWrittingfilepath = 'E:\\ZForWorks\\MLPython\\knn\\digits\\'d = 32handwritingClassTest(filepath,d)准确率:98.3%
0 0
- k近邻算法识别手写数字Python实现
- Python徒手实现识别手写数字—图像识别算法(K最近邻)
- 基于K-近邻算法识别手写数字的实现
- k-近邻算法实现手写数字识别系统
- k-近邻算法实现手写数字识别系统
- K近邻算法(一) python实现,手写数字识别(from机器学习实战)
- k近邻 - 手写数字识别
- OpenCV手写数字字符识别(基于k近邻算法)
- 【机器学习】k-近邻算法应用之手写数字识别
- OpenCV手写数字字符识别(基于k近邻算法)
- OpenCV手写数字字符识别(基于k近邻算法)
- 基于K-近邻算法的手写数字识别研究
- OpenCV手写数字字符识别(基于k近邻算法)
- k近邻算法实现手写数字的识别和图片的分类
- 机器学习 & python k-近邻算法处理手写识别系统
- 机器学习 & python k-近邻算法处理手写识别系统
- 手写识别系统(k-近邻算法)
- k-近邻算法 手写识别系统
- 求解二叉树中两个节点的最近公共祖先(LCA)
- Java连接数据库类
- VC设置项目属性时"从父级或项目默认设置继承"中的父级在哪里?
- Ubuntu 15.04 系统安装
- j2ee四大作用域pagecontext,request,session,ServletContext
- k近邻算法识别手写数字Python实现
- Maven JSP 标签
- java学习小结(16.05.10)eclipse一些最基本的使用方法
- (五)html5设置带背景的输入框
- 网络编程知识(9)--网络应用层协议的开发
- C++ 走向远洋——44(项目一、点—圆—圆柱类族的设计、派生类)
- android 6.0 textview 跑马灯失效和出现抖动的解决方法
- Html+CSS CSS中的选择器
- Ubuntu 16.04 系统安装