您好, 访客   登录/注册

基于SVM技术实现手写数字分类识别的研究

来源:用户上传      作者:杨永琪 徐欣蕾 陈曦

  摘要:支持向量机(SVM)是一种二分类模型,通过在给定的特征空间中找到两个类别的数据样本之间的最大间隔超平面,可以使任何两个类别线性地分离。该文提出了不同核函数的SVM的分类模型,用于识别不同类型的手写识别数字图案。在此模型中,使用SHeen模块中现有结构作为训练的特征提取器,而核函数SVM的执行作为识别器,该模型自动从原始手写数字集图像中提取特征并生成预测,通过MNIST数字数据库进行了验证,并经多个核函数和惩罚系数的调整、拟舍得到了较高的预测分类准确率,最终呈现的预测结果准确率达98.3%。
  关键词:手写数字识别;支持向量机;核函数
  中图分类号:TP3 文献标识码:A
  文章编号:1009-3044(2020)06-0195-02
  1简介
  支持向量机fSVM,Support Vector Machine)是一类按监督学习的方式对数据进行二元分类的一种分类器(方法),其决策边界为求解训练样本的最大边距分割超平面。支持向量机可分为三种:硬间隔支持向量机、软间隔支持向量机、核函数支持向量机。其中,硬间隔支持向量机适用于无噪声或离群点的数据集,其损失函数不存在,损失值为0;软间隔支持向量机允许样本集存在一定的分类错误,即存在部分噪声或离群点,其优化函数包括两部分,一部分是支持向量到分割超平面的间隔距离,另一部分为误分类的损失个数;核函数支持向量机适用于非线性部分的数据集,对于在N维空间中线性不可分的数据,在N+I维或更高维度的空间而变成线性可分的,其中常用的核函数为(RBF)高斯核函数,高斯核函数可以将维度扩展到无穷维的空间,
  SVM的主要优点:
  (1)有效解决高维特征的分类问题和回归问题,在特征维度大于样本数时依然有很好的效果;
  (2)仅使用部分支持向量来做超平面的决策无须依赖全部数据;
  (3)核函数使用广泛、灵活,从而可以从多角度来解决各种非线性的分类回归问题;
  (4)样本量不是海量数据的时候,分类准确率高,泛化能力强。
  SVM的主要缺点:
  (1)当特征维度远远大于样本数时则SVM的分类效果并不明显;
  (2)处理大样本数据集时,核函数映射维度过高,计算量过大,影响运行效率;
  (3)非线性问题的核函数选择没有通用标准,难以选择一个合适的核函数;
  (4)SVM對缺失数据、缺失值较为敏感。
  2基于支持向量机的手写数字识别
  2.1设计流程
  SVM模型采用了Sklearn模块的ovr模式,对于Mnist数据集采用预处理的办法进行归一化、二值化、去噪等操作,再选取部分数据作为训练数据集,打乱数据后,采用分层抽样、交叉验证地方式代入改进的SVM模型中进行模型训练,选用不同的核函数并调整权重系数C进行ovr的SVM模型,从而进行分类预测准确率的实验,并输出文本报告、混淆矩阵、Loss迭代图分析预测情况。
  2.2支持向量机解决手写数字识别分类问题的基本方法
  基于SVM技术实现手写数字的识别分类的基本办法包括四部分:
  (1)准备数据:读取Mnist中手写数字模块的数据集,并将该部分数据集重新打乱,避免识别过程中造成误差,并将其划分为训练集和测试集两部分,同时采用分层抽样、交叉验证的办法对数据集进行划分。
  (2)数据预处理:对划分好的数据集进行归一化、二值化、降噪等预处理操作,实现识别手写数字中有效信息的简易化,并提升手写数字图像的识别精度,本文中该数据集采用的手写数字图片为28*28的像素,也可以预先进行降维操作,以便后期引入核函数时简化计算。
  (3)特征提取:通过结构化特征提取或统计化特征提取的方法对手写数字中的各个图像特征进行处理,以一个图像特征的提取为例,即将图像分成n*n的区域,统计每块区域中像素点所占的百分比与SVM中参数的选择f核函数与惩罚系数C的选择),当不需要参数选择时,可以采用默认参数;此过程可采用Sklearn模块中的LinearSVC或SVC工具包等实现。
  (4)训练及测试:通过matshowO方法绘制该模型的混淆矩阵,并对采用不同参数(核函数与惩罚系数C)的SVM模型进行混淆矩阵的比较;输出详细报告,给出不同参数下SVM模型的整体准确性、预测精度、回召率、支持向量个数等数值。
  3测试结果及分析
  该SVM模型中通过选用Mnist手写数字数据集,对其经数据预处理后,先通过Skleam包中的LinearSVC工具包中的函数进行处理,得到其整体准确性均在90%水平浮动,故又引入了SVC函数,通过对RBF、Polynomial、Linear、Sigmoid等核函数的选择,运用Ovr分类方案,得到了在高斯核函数、设置惩罚系数为15的条件下得到最高、最精确的预测率98.3%及实验精度。
  4总结
  本文通过Mnist数据集,选取了30%作为测试集、70%作为训练集进行实验,经Sklearn模块中的函数进行实现,在选择高斯核函数、设置惩罚系数为15的模型参数条件下可得到最精确的预测率98.3%及实验精度,得到了高斯核对于数据集的拟合程度较高,并且使用高斯核的SVM模型整体准确性及各个报告参数也显著提升的结论。显示了手写数字识别的混淆矩阵,其中值得注意的是,在“3”和“5”这类手写数字之间发生的混淆的概率较大,但经相关参数的选择与修改本文最终得到了较为准确的预测结果。
转载注明来源:https://www.xzbu.com/8/view-15177113.htm