手写数字识别:基于决策树算法,KNN算法,支持向量机(SVM)算法与卷积神经网络(CNN)算法

目录

手写数字识别问题介绍

理论价值

研究难点

MNIST数据集介绍

数据预处理

应用算法

KNN算法

决策树算法

支持向量机算法

卷积神经网络

模型评估

决策树算法

KNN算法

SVM算法

CNN

模型比较

参考代码

决策树

KNN

SVM

CNN

绘图

main


手写数字识别问题介绍

手写数字识别是模式识别学科的一个传统研究领域,是光学字符识别技术的一个分支。这类研究主要研究如何利用电子计算机自动辨认书写在纸张上的阿拉伯数字。随着信息化的发展,手写数字识别的应用日益广泛,研究高识别率、零误识率和低拒识率的高速识别算法具有重要意义。本报告将对MNIST数据集中的手写数据进行识别,此工作将对不同数据挖掘方法进行构建与评估。期望在手写数据识别问题上获得较好的结果。

理论价值

由于手写数字识别本身的特点,对它的研究有重要的理论价值:

(1)阿拉伯数字是唯一被世界各国通用的符号,对手写体数字识别的研究基本上与文化背景无关,各地的研究工作者基于同一平台开展工作,有利于研究的比较和探讨。

(2)手写数字识别应用广泛,如邮政编码自动识别,税表系统和银行支票自动处理等。这些工作以前需要大量的手工录入,投入的人力物力较多,劳动强度较大。手写数字识别的研究适应了无纸化办公的需要,能大大提高工作效率。

(3)由于数字类别只有10个,较其他字符识别率较高,可用于验证新的理论和做深入的分析研究。许多机器学习和模式识别领域的新理论和算法都是先用手写数字识别进行检验,验证理论的有效性,然后才应用到更复杂的领域当中。这方面的典型例子就是人工神经网络和支持向量机。

(4)手写数字的识别方法很容易推广到其它一些相关问题,如对英文之类拼音文字的识别。事实上,很多学者就是把数字和英文字母的识别放在一起研究的。

研究难点

数字的类别只有10种,笔划简单,其识别问题似乎不是很困难。但事实上,一些测试结果表明,数字的正确识别率并不如印刷体汉字识别率高,甚至也不如联机手写体汉字识别率高,而只仅仅优于脱机手写体汉字识别。这其中的主要原因是:

(1)数字笔划简单,其笔划差别相对较小,字形相差不大,使得准确区分某些数字相当困难;

(2)数字虽然只有10种,且笔划简单,但同一数字写法千差万别,全世界各个国家各个地区的人都在用,其书写上带有明显的区域特性,很难做出可以兼顾世界各种写法的、识别率极高的通用性数字识别系统。

虽然目前国内外对脱机手写数字识别的研究已经取得了很大的成就,但是仍然存在两大难点:

一是识别精度需要达到更高的水平。手写数字识别没有上下文,数据中的每一个数据都至关重要。而数字识别经常涉及金融、财会领域,其严格性更是不言而喻。因此,国内外众多的学者都在为提高手写数字的识别率,降低误识率而努力。

二是识别的速度要达到很高的水平。数字识别的输入通常是很大量的数据,而高精度与高速度是相互矛盾的,因此对识别算法提出了更高的要求。

MNIST数据集介绍

1998年,美国国家标准技术研究所(NIST)发布了MNIST数据集,这是一个用来训练各种图像处理系统的二进制图像数据集,广泛应用于机器学习中的训练和测试。MNIST数据集是从NIST的两个手写数字数据集:Special Database 3 和Special Database 1中分别取出部分图像,并经过一些图像处理后得到的。MNIST数据集共有70000张图像,其中训练集60000张,测试集10000张。所有图像都是28×28的灰度图像,每张图像包含一个手写数字。

手写数据识别是个多分类问题,其中数据标签分别是0到9共10种,利用python包中的torchvision.datasets.MNIST函数对原始数据进行下载并解压,获得二进制文件,如图。

其中解压缩共获得四个文件。文件名称中t10k代表测试集,train代表训练集;images存储图像的数量,图像的高,图像的宽与图像各个像素的值,labels存储标签的数量与标签的类别信息。其中训练集有6万个样本,测试集有1万个样本。

数据预处理

MNIST数据集构建时已经将数据进行部分预处理,比如将每个手写数据放在图片正中心;将每个样本固定在28×28固定大小;图片灰度化,将其降噪转化为黑白两色;最终得到我们下载的数据。我们又对数据进行归一化,把所有的输入数值控制在[0,1]之间。

获得手写数据的原始数据后,对图片进行采样处理,获得手写数据的位置并且确保手写数字在图片的中心处,防止手写数字因位置的偏移对识别造成影响;控制每个样本的大小相同,使图片都为28×28固定大小,保证测试集与验证机的数据维度相同;将图片由三通道彩色的格式(3×28×28)转化成单通道的灰度图(1×28×28);此时所有数据的范围都是[0,255]之间的灰度值,将所有数值除255,使所有的输入数值在[0,1]之间。

应用算法

本文应用了四种不同的算法对手写数字数据集进行分类,分别是决策树算法,KNN算法,支持向量机(SVM)算法与卷积神经网络(CNN)算法。

KNN算法

KNN分类算法是数据挖掘分类技术中最简单的方法之一,最初由Cover和Hart于1968年提出。KNN分类算法简单易懂,但存在存储要求高、分类响应效率低、噪声容限低等缺点。KNN算法的核心思想是,将手写数字图像样本编码映射到一个特征空间中,在这个样本空间中寻找与该样本编码距离最近的K个样本,记录该K个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值