1、-_暑 期 生 产 实 习 报 告题 目 基于 K-近邻算法的手写数字识别 学 院 电子工程学院 专 业 智能科学与技术 学生姓名 学 号 指导老师 提交日期 摘要基于 k-近邻算法对经典的手写数字集 mnist 中的测试数据进行分类。用MATLAB 语言编写代码,将原始数据读入,形成三维矩阵,再通过 k 近邻算法计算出待测数据周围最近的 k 个数据,将待测数据分为 k 个数据中最多的类。本次实验只是用 mnist 数据中训练图像前 6000 张,测试图像前 1000 张。关键词:k-近邻算法,数据分类,手写数字集,mnist 数据集目录一 绪论 .51.1 k-近邻算法的基本概念 .51.2
2、 mnist 数据集 .5二 k-近邻算法 .62.1 k-近邻算法的工作原理 .62.2 k-近邻算法的算法步骤 .62.3 k-近邻算法的优缺点 .6三 k-近邻算法分类 mnist 的具体方法 .6四 实验结果与分析 .74.1 待测图像 .74.2 实验结果 .94.3 结果分析 .11五 实验代码 .11六 总结与展望 .166.1 总结 .166.2 展望 .16参考文献 .171、绪论 1.1 手写数字识别的基本概念手写数字识别是图像识别的一个分支,它研究的对象是:如何利用电子计算机自动辨认人手写的阿拉伯数字。在整个 OCR 领域中,最为困难的就是脱机手写字符的识别。到目前为止,
3、尽管人们在脱机手写英文、汉字识别的研究中已取得很多可喜成就,但距实用还有一定距离。而在手写数字识别这个方向上,经过多年研究,研究工作者已经开始把它向各种实际应用推广,为手写数据的高速自动输入提供了一种解决方案。1.2 手写数字识别的实际背景字符识别处理的信息可分为两大类:一类是文字信息,处理的主要是用各国家、各民族的文字(如:汉字、英文等)书写或印刷的文本信息,目前在印刷体和联机手写方面技术已趋向成熟,并推出了很多应用系统;另一类是数据信息,主要是由阿拉伯数字及少量特殊符号组成的各种编号和统计数据,如:邮政编码、统计报表、财务报表、银行票据等等,处理这类信息的核心技术是手写数字识别。这几年来我
4、国开始大力推广的“三金”工程在很大程度上要依赖数据信息的输入,如果能通过手写数字识别技术实现信息的自动录入,无疑会促进这一事业的进展。因此,手写数字的识别研究有着重大的现实意义,一旦研究成功并投入应用,将产生巨大的社会和经济效益。1.3 手写数字识别的理论意义手写数字识别作为模式识别领域的一个重要问题,也有着重要的理论价值:(1)阿拉伯数字是唯一的被世界各国通用的符号,对手写数字识别的研究基本上与文化背景无关,这样就为各国、各地区的研究工作者提供了一个施展才智的大舞台。在这一领域大家可以探讨,比较各种研究方法。(2)由于数字识别的类别数较小,有助于做深入分析及验证一些新的理论。这方面最明显的例
5、子就是人工神经网络,相当一部分的人工神经网络模型都以手写数字识别作为具体的实验平台,验证理论的有效性,评价各种方法的优缺点。(3)尽管人们对手写数字的识别已从事了很长时间的研究,并已取得了很多成果,但到目前为止机器的识别本领还无法与人的认知能力相比,这仍是一个有难度的开放问题。(4)手写数字的识别方法很容易推广到其它一些相关问题,一个直接的应用是对英文这样的拼音文字的识别。事实上,很多学者就是把数字和英文字母的识别放在一块儿研究的。1.4 基于手写数字识别的典型应用手写数字识别有着极为广泛的应用前景,这也正是它受到世界各国的研究工作者重视的一个主要原因。下面我们将介绍基于手写数字识别的应用系统
6、的特殊要求,以及一些以手写数字识别技术为基础的典型应用。(1) 手写数字识别在大规模数据统计中的应用在大规模的数据统计(如:行业年鉴、人口普查等)中,需要输入大量的数据,以前完全要手工输入,则需要耗费大量的人力和物力。近年来在这类工作中采用 OCR 技术已成为一种趋势。因为在这种应用中,数据的录入是集中组织的,所以往往可以通过专门设计表格和对书写施加限制以便于机器的自动识别。目前国内的大多数实用系统都要求用户按指定规范在方格内填写。另外,这些系统往往采用合适的用户界面对识别结果做全面的检查,最终保证结果正确无误。可以看出,这是一类相对容易的应用,对识别核心算法的要求比较低,是目前国内很多单位应
7、用开发的热点。(2) 手写数字识别在财务、税务、金融领域中的应用财务、税务、金融是手写数字识别大有可为的又一领域。随着我国经济的迅速发展,每天等待处理的财务、税务报表、支票、付款单等越来越多。如果能把它们用计算机自动处理,无疑可以节约大量的时间、金钱和劳力。与上面提到的统计报表处理相比,在这个领域的应用难度更大,原因有:1、对识别的精度要求更高;2、处理的表格往往不止一种,一个系统应能智能地同时处理若干种表格;3、由于处理贯穿于整个日常工作之中,书写应尽量按一般习惯(如:不对书写者的写法做限定,书写时允许写连续的字串,而不是在固定的方格内书写),这样对识别及预处理的核心算法要求也提高了。(3)
8、 手写数字识别在邮件分拣中的应用随着人们生活水平的提高,经济活动的发展,通信联系的需求使信函的互换量大幅度增加,我国函件业务量也在不断增长,预计到 2000 年,一些大城市的中心邮局每天处理量将高达几百万件,业务量的急剧上升使得邮件的分拣自动化成为大势所趋。在邮件的自动分拣中,手写数字识别(OCR)往往与光学条码识别、人工辅助识别等手段相结合,完成邮政编码的阅读。目前使用量最大的 OVCS 分拣机的性能指标:OCR 拒分率 30%,OCR 分拣差错率 1.1%。1.5 手写数字识别技术展望随着国家信息化进程的加快,手写数字识别的应用需求将越来越广泛,因此应当加强这方面的研究工作。作者认为,应用
9、系统的性能的关键与瓶颈仍然在于手写数字识别核心算法性能上,最终目标是研究零误识率和低拒识率的高速识别算法。此外,尽早建立反映中国人书写习惯的、具有国家标准性质的手写数字样本库也是当务之急。2、k 近邻算法2.1 k-近邻算法的基本概念k-近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的 k 个数据, 这 k 个数据的多数属于某个类,就把该输入实例分类到这个类中。k-近邻算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 k-近邻方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少
10、量的相邻样本有关。由于 k-近邻方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,k-近邻方法较其他方法更为适合。k- 近邻算法不仅可以用于分类,还可以用于回归。通过找出一个样本的 k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成正比(组合函数)。该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的 K 个邻居中大容量类的样本占
11、多数。 该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。无论怎样,数量并不能影响运行结果。可以采用权值的方法(和该样本距离小的邻居权值大)来改进。该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的 K 个最近邻点。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。2.2 k 近邻算法的工作原理存在一个样本数据集合(即训练样本集),并且样本集中每个数
12、据都存在标签(即每个数据与所属分类的对应关系)。输入没有标签的新数据之后,将新数据的每个特征与样本集中数据对应的特征进行比较,算法将提取出样本集中特征最相似数据(最近邻)的分类标签。一般选择样本数据集中前 K 个最相似的数据,k 一般不大于 20 的整数。2.3 k 近邻算法的算法步骤Step.1 计算已知类别数据集中的点与当前点之间的距离; 2121)()(dyxStep.2 按照距离递增次序排序;Step.3 选取与当前点距离最小的 k 个点;Step.4 确定前 k 个点所在类别的出现频率;Step.5 返回前 k 个点出现频率最高的类别作为当前点的预测分类。2.4 k-近邻算法的优缺点
13、k-近邻算法拥有以下优点:精度高、对异常值不敏感、无输入数据假定k-近邻算法拥有以下缺点:时间复杂度和空间复杂度都很高三 k 近邻算法分类 mnist 的具体方法数据先预处理,将下载的初始图像数据读入 MATLAB,并储存为三维的矩阵,再读入标签文件,储存为二维矩阵,以便后面的使用。手写数字图像都为 28 像素*28 像素,对于每一个数字图像,计算其与每一张训练图像的距离,对于一张待测图像与训练图像,计算每一个像素的差值,如果差值大于参数 45,则这两站图的距离加一,直到 784 个像素点全部计算完毕,得到两张图的距离。再用排序找到与该张数字图像最近的 k 张图像,对距离最近的 k 张图像根据训练数据标签进行分类,找到 k 张图像中最多的数字,该张测试数字图像即划分为该数字类。四 实验结果与分析4.1 待测图像图 4.1 待测第 1 张图图 4.2 待测第 2 张图图 4.3 待测第 3 张图图 4.4 待测第 4 张图