机器学习实战(第二篇)-k-近邻算法开发手写识别系统

本文介绍了如何使用k-近邻(kNN)算法开发手写识别系统,从收集和准备数据,到分析、训练和测试算法。系统针对0-9的数字,将图像转换为向量,通过kNN进行识别,错误率为1.2%。文章探讨了算法的效率问题,并提及k决策树作为优化方案。
摘要由CSDN通过智能技术生成

   上一篇文章中,我们学习了使用k近邻算法改进约会网站,实现了通过一些数据的输入判断人员属于哪一个分类。但是上篇文章基于的数据都是我们能够简单理解的数字信息,本篇文章我们在人不太容易看懂的数据上使用分类器。这篇文章中我们将一步步构造使用k-近邻分类器的手写识别系统。为了简单起见,这里构造的系统只能识别数字0到9。需要识别的数字已经使用图形处理软件,处理成具有相同色彩和大小:宽高是32像素 X 32像素的黑白图像。尽管采用文本格式存储图像不能有效利用内存空间,但是为了方便理解,我们还是将图像转换为文本格式。

    使用k-近邻算法的手写识别系统:(1)收集数据:提供文本文件;(2)准备数据:编写函数classify0(),将图形格式转换为分类器使用的list格式;(3)分析数据:在Python命令提示符中检查数据,确保它符合要求。(4)训练算法:此步骤不使用与k-近邻算法。(5)测试算法:编写函数使用提供的部分数据集作为测试样本,测试样本与非测试样本的区别在于测试样本是否已经完成分类的数据,如果预测分类和实际分类不相同,则标记为一个错误;(6)使用算法:本例没有完成此步骤,若你感兴趣可以构建完整的应用程序,从图像中提取数字,并完成数字识别,美国的邮件分拣系统就是一个实际运行的类似系统。

1. 准备数据:将图像转换为测试向量

    我们使用trainingDigits中的数据训练分类器,使用目录test

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值