基于MATLAB的手写体数字识别算法的实现

基于MATLAB的手写体数字识别算法的实现与分析

摘  要

手写体数字识别是利用计算机自动辨认手写体阿拉伯数字的一种技术,是光学字符识别技术的一个分支。手写体数字识别在邮政编码、财务报表、银行票据、各种凭证以及调查表格的识别等等方面有着重要应用,由于数字识别经常涉及财会、金融领域,其严格性更是不言而喻的。所以,对识别系统的可靠性和识别率要求很高,构成了手写体数字识别面临的主要困难,大批量数据处理对系统速度又有相当高的要求。

本文基于MNIST数据集,通过Matlab平台,对决策树算法、SVM算法和人工神经网络(ANN)算法进行实现,并对分类算法的准确率进行评估。实验结果表明,人工神经网络(ANN)的准确率最高,为99.69%,SVM算法次之,准确率为94.53%,决策树算法的准确率为83.53%。三种分类算法中,决策树算法的速度最快,SVM算法的速度最慢。另外,针对每一种分类算法在MNIST数据集上的实验结果,本文还得出以下结论:

第一,MNIST数据集的归一化与否对决策树的分类效果几乎没有影响;对SVM的分类效果影响较大,未归一化时的准确率为11.35%,归一化之后的准确率为94.53%;对人工神经网络的分类效果影响较小,未归一化时的准确率为82.11%,归一化之后的准确率为99.69%。这说明三种分类算法对数据的不平衡分布的敏感程度各不相同。

第二,对于SVM分类算法,当训练数据集的样本容量小于60000(MNIST训练数据集的最大样本容量)时,该算法对测试数据集分类预测的准确率随样本容量的增大而增大。

第三,针对人工神经网络,数据类标签的表示形式对分类预测的准确率的影响较大。使用10位数据表示类标签是的准确率为99.69%,远远高于使用1位数据表示类标签时的准确率60.24%。

关 键 词:手写体数字识别;决策树算法;SVM算法;人工神经网络算法 

ABSTRACT

Handwritten numeral recognition is a technique that uses computer to recognize handwritten Arabic numerals automatically and is a branch of optical character recognition technology. Handwritten numeral recognition has important applications in postal codes, financial statements, bank notes, various kinds of vouchers and the identification of survey forms. Since digital identification often involves accounting and finance, its strictness is self-evident. The demand for identification system of the reliability and recognition rate is very high, constituting a handwritten digital identification facing major difficulties, high-volume data processing on the system speed and a very high demand.

In this paper, we use Matlab to implement decision tree algorithm, SVM algorithm and artificial neural network (ANN) algorithm based on MNIST dataset, and the accuracy of classification algorithms is calculated by using the real data tag. Experimental results show that the artificial neural network (ANN) the highest accuracy rate for 99.69%, SVM algorithm, followed by 94.53 percent accuracy rate, decision tree algorithm accuracy is 83.53%. In terms of speed, decision tree algorithm is the fastest, SVM algorithm is the slowest. In addition, for each classification algorithm we also concluded that:

Firstly, whether or not the MNIST dataset is normalized has no effect in the classification tree; While it has a great impact on SVM classification. When it is not normalized the accuracy is 11.35%, and after normalized the accuracy is 94.53% ; The artificial neural network classification is less affected, and when it is not normalized the accuracy is 82.11% while after normalized the accuracy is 99.69%. This shows the sensitivity of the three classification algorithms to unbalanced distribution of data.

Secondly, for the SVM classification algorithm, when the sample size is less than 60,000(maximum size of MNIST test data set), the accuracy increases with the increasing of sample size.

Thirdly, for the artificial neural network, the impact of class label representation is large on the classification accuracy. When using 10 bits to represent class labels, the accuracy is 99.69%, far higher than the accuracy of 60.24% when using 1 bit to represent data labels.

KEY WORDS: Handwritten numeral recognition; Decision tree algorithm; SVM algorithm; Artificial neural network algorithm

目  录

ABSTRACT

1. 引言

1.1 手写数字识别

2. 分类算法

2.1 决策树算法

2.1.1 ID3算法

2.1.2 C4.5算法

2.1.3 CART算法

2.1.4 SLIQ算法

2.1.5 SPRINT算法

2.1.6 经典决策树算法的比较

2.2 支持向量机

2.3 人工神经网络

2.3.1人工神经网络的原理

2.3.2反向传播网络(BP)

2.3.3 Hopfield网络

3 实验过程与结果分析

3.1 实验环境

3.2实验数据集

3.3数据预处理

3.4决策树分类实验

3.4.1实验过程

3.4.2实验结果

3.5 SVM分类实验

3.5.1实验过程

3.5.2实验结果

3.6人工神经网络分类实验

3.6.1实验过程

3.6.2实验结果

4 结论

4.1 三种分类算法的比较

4.2 决策树算法的分析

4.3 SVM算法分析

4.4 神经网络算法分析

参考文献

  1. 引言
    1. 手写数字识别

手写数字识别是模式识别领域的一个重要分支,它研究的核心问题是:如何利用计算机自动识别人手写在纸张上的阿拉伯数字。手写体数字识别问题,简而言之就是识别出10个阿拉伯数字,由于数字的清晰程度或者是个人的写字习惯抑或是其他,往往手写体数字的性状、大小、深浅、位置会不大一样。手写体识别一般包括3个阶段:预处理、特征提取、分类识别。

手写数字识别前景广阔,广泛应用于表格中数字的识别、汽车牌照的数字自动识别和成绩单的识别等。实现数字的自动识别能够给人们的工作和生活带来很大的方便。对于该领域的研究具有重要的理论价值:

一方面,阿拉伯数字是唯一的被世界各国通用的符号,对手写数字识别的研究与文化背景无关,这样就为各国、各地区的研究工作者提供了一个自由平等的舞台,大家可以在这一领域施展才智,各抒己见。

另一方面,由于数字识别的类别数较少(只有0到9十个类别),有助于做深入分析及验证一些新的理论。这方面最明显的例子就是人工神经网络,相当一部分的人工神经网络模型都以手写数字识别作为具体的实验平台,验证理论的有效性,评价各种方法的优缺点。

数字识别的算法较多,当前运用较好的主流算法以统计、聚类和分类算法为主,如Bagging算法、支持向量机算法、神经网络等。手写数字识别难度在于:一、数字相似性大,但字形相差不大;二、数字虽然只有10种,但笔划简单,同一个数字写法差别大;三、手写数字存在断笔和毛刺,对识别造成影响。本文选择分类算法中的决策树算法、支持向量机算法、神经网络对MNIST数据集进行数字识别,并对分类效果进行比较分析。

  1. 分类算法

分类器识别是实现手写体数字识别的最终关键,基于距离的分类器和神经网络分类器这两大类是目前现有的最主要的分类器。分类是数据挖掘的重要分支,可用于提取、描述重要数据的模型或预测未来的数据趋势[1]。

    1. 决策树算法

决策树也称为判定树,是一种有监督的学习方法。决策树代表着决策树的树形结构,可以根据训练集数据构造出决策树。如果该树不能对所有对象给出正确的分类,就选择一些例外加入到训练集数据中。重复该过程,直到形成正确的决策集。决策树方法首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策树对新数据进行分析,本质上是通过一系列规则对数据进行分类的过程。决策树的典型算法有ID3,C4.5,等。根据训练集构建决策树,决策树中的结点逐层展开。每展开一层子结点,并将其设为叶结点,就得到一棵决策树,然后采用测试集对所得决策树的分类性能进行统计。重复上述过程,可以得到决策树在测试集上的学习曲线。根据学习曲线,选择在测试集上性能最佳的决策树为最终的决策树。

2.1.1 ID3算法

J.Ross Quinlan在1986年将信息论引入到决策树算法中,提出了ID3[2]算法,算法思想如下:

设样本集E共有C类训练集,每类样本数为pi,且i=1,2,3,…,C。如果以属性A作为测试属性,属性A的v个不同的值为{v1,v2,…,vv},可以用属性A将E划分成v个子集{E1,E2,…,Ev},假定Ei中含有第j类样本的个数为pij,j=1,2,3,

  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值