人工智能实验报告_第1页
人工智能实验报告_第2页
人工智能实验报告_第3页
人工智能实验报告_第4页
人工智能实验报告_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于 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 目 录 1 引言 1 1 1手写数字识别 1 2 分类算法 1 2 1决策树算法 2 2 1 1 ID3 算法 2 2 1 2 C4 5 算法 3 2 1 3 CART 算法 3 2 1 4 SLIQ 算法 3 2 1 5 SPRINT 算法 3 2 1 6 经典决策树算法的比较 4 2 2支持向量机 4 2 3人工神经网络 6 2 3 1 人工神经网络的原理 6 2 3 2 反向传播网络 BP 6 2 3 3 Hopfield 网络 8 3实验过程与结果分析 10 3 1 实验环境 10 3 2 实验数据集 10 3 3 数据预处理 10 3 4 决策树分类实验 11 3 4 1 实验过程 11 3 4 2 实验结果 12 3 5 SVM 分类实验 13 3 5 1 实验过程 13 3 5 2 实验结果 14 3 6 人工神经网络分类实验 14 3 6 1 实验过程 14 3 6 2 实验结果 15 4结论 19 4 1 三种分类算法的比较 19 4 2 决策树算法的分析 19 4 3 SVM 算法分析 19 4 4 神经网络算法分析 20 参考文献 21 1 引言 1 1 手写数字识别 手写数字识别是模式识别领域的一个重要分支 它研究的核心问题是 如 何利用计算机自动识别人手写在纸张上的阿拉伯数字 手写体数字识别问题 简而言之就是识别出 10 个阿拉伯数字 由于数字的清晰程度或者是个人的写字 习惯抑或是其他 往往手写体数字的性状 大小 深浅 位置会不大一样 手 写体识别一般包括 3 个阶段 预处理 特征提取 分类识别 手写数字识别前景广阔 广泛应用于表格中数字的识别 汽车牌照的数字 自动识别和成绩单的识别等 实现数字的自动识别能够给人们的工作和生活带 来很大的方便 对于该领域的研究具有重要的理论价值 一方面 阿拉伯数字是唯一的被世界各国通用的符号 对手写数字识别的 研究与文化背景无关 这样就为各国 各地区的研究工作者提供了一个自由平 等的舞台 大家可以在这一领域施展才智 各抒己见 另一方面 由于数字识别的类别数较少 只有 0 到 9 十个类别 有助于做 深入分析及验证一些新的理论 这方面最明显的例子就是人工神经网络 相当 一部分的人工神经网络模型都以手写数字识别作为具体的实验平台 验证理论 的有效性 评价各种方法的优缺点 数字识别的算法较多 当前运用较好的主流算法以统计 聚类和分类算法 为主 如 Bagging 算法 支持向量机算法 神经网络等 手写数字识别难度在 于 一 数字相似性大 但字形相差不大 二 数字虽然只有 10 种 但笔划简 单 同一个数字写法差别大 三 手写数字存在断笔和毛刺 对识别造成影响 本文选择分类算法中的决策树算法 支持向量机算法 神经网络对 MNIST 数据 集进行数字识别 并对分类效果进行比较分析 2 分类算法 分类器识别是实现手写体数字识别的最终关键 基于距离的分类器和神经 网络分类器这两大类是目前现有的最主要的分类器 分类是数据挖掘的重要分 支 可用于提取 描述重要数据的模型或预测未来的数据趋势 1 2 1 决策树算法 决策树也称为判定树 是一种有监督的学习方法 决策树代表着决策树的 树形结构 可以根据训练集数据构造出决策树 如果该树不能对所有对象给出 正确的分类 就选择一些例外加入到训练集数据中 重复该过程 直到形成正 确的决策集 决策树方法首先对数据进行处理 利用归纳算法生成可读的规则 和决策树 然后使用决策树对新数据进行分析 本质上是通过一系列规则对数 据进行分类的过程 决策树的典型算法有 ID3 C4 5 CART 等 根据训练集构 建决策树 决策树中的结点逐层展开 每展开一层子结点 并将其设为叶结点 就得到一棵决策树 然后采用测试集对所得决策树的分类性能进行统计 重复 上述过程 可以得到决策树在测试集上的学习曲线 根据学习曲线 选择在测 试集上性能最佳的决策树为最终的决策树 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 C 那么子集 Ei 的熵为 1 c 1 j i E ij p log i E ij p i opy EInfor Entr 属性 A 的信息熵为 2 v 1 i i opy EInfor Entr E i E opy A Infor Entr 将代入公式 2 后可得 3 v 1 i c 1 j i E ij p log i E ij p E i E opy A Infor Entr 一棵决策树对一实例做出正确类别判断所需的信息为 4 c 1 i C 1 2 i E i C 2 log E i C Infor E 信息增益 ID3 算法存在着属性偏向 对噪声敏感等问题 2 1 2 C4 5 算法 在 ID3 算法的基础上 Quinlan 在 1993 年提出了一种改进的算法 即 C4 5 算法 3 信息增益率计算如下 5 Split A Gain A A Gainratio 6 c 1 j i E ij p log i E ij p Split A C4 5 算法克服了 ID3 算属性偏向的问题 增加了对连续属性的处理 通过 剪枝 在一定程度上避免了 过度拟合 的现象 但是该算法将连续属性离散 化 需要遍历该属性的所有值 降低了效率 要求训练样本驻留在内存 不适 合处理大规模数据集 2 1 3 CART 算法 CART 算法可以处理无序的数据 采用基尼系数作为测试属性的选择标准 基尼系数的计算如下 7 2 Gini T T 2 T 1 Gini T T 1 T T split Gini 其中 pi 是类别 j 在 T 中出现的概率 ini 2 i p 1 T G CART 算法生成的决策树精度较高 但是当其生成的决策树复杂度超过一定 程度后 随着复杂度的提高 分类精确度会降低 因此 用该算法建立的决策 树不宜太复杂 4 2 1 4 SLIQ 算法 决策树分类算法研究一直朝着处理大数据集的方向进行 但大部分方法在 减少了运算时间的同时也降低了算法的精度 SLIQ 的分类精度与其他决策树算 法不相上下 但其执行的速度比其他决策树算法快 SLIQ 算法对训练样本集的 样本数量以及属性的数量没有限制 SLIQ 算法能够处理大规模的训练样本集 具有较好的伸缩性 执行速度快 而且能够生成较小的二叉决策树 SLIQ 算法允许多个处理器同时处理属性表 从而实现并行性 但是 SLIQ 算法不能摆脱主存容量的限制 2 1 5 SPRINT 算法 SLIQ 算法要求类表驻留内存 当训练集大到类表放不进内存时 SLIQ 算法 就无法执行 为此 IBM 的研究人员提出 SPRINT 算法 它处理速度快 不受内 存的限制 SPRINT 算法可以处理超大规模训练样本集 数据样本集数量越大 SPRINT 的执行效率越高 并且可伸缩性更好 但是 SPRINT 算法存在着一些缺陷 在 SLIQ 的类表可以存进内存时 SPRINT 算法的执行速度比 SLIQ 算法慢 2 1 6 经典决策树算法的比较 基于决策树的分类算法已经有几十种 各种算法在执行速度 可扩展性 输出结果的可理解性 分类预测的准确性方面各有所长 下面就对几种典型的 决策树算法进行比较 结果如表 2 1 所示 表 2 1 典型决策树算法的比较 算法 测试属性选 择指标 连续属性 的处理 是否需 要独立 测试样 本集 运行剪枝时 间 可伸 缩性 并行 性 决策树 的结构 ID3 信息增益离散化是后剪枝差差多叉树 C4 5 信息增益率预排序否后剪枝差差多叉树 CART GINI 系数预排序否后剪枝差差二叉树 SLIQ GINI 系数预排序否后剪枝良好良好二叉树 SPRINT GINI 系数预排序否后剪枝好好二叉树 2 2 支持向量机 支持向量机 SVM 方法是通过一个非线性映射 p 把样本空间映射到一个高 维乃至无穷维的特征空间中 Hilbert 空间 使得在原来的样本空间中非线性可 分的问题转化为在特征空间中的线性可分的问题 简单地说 就是升维和线性化 升维 就是把样本向高维空间做映射 一般情况下这会增加计算的复杂性 甚 至会引起 维数灾难 因而人们很少问津 但是作为分类 回归等问题来说 很 可能在低维样本空间无法线性处理的样本集 在高维特征空间中却可以通过一 个线性超平面实现线性划分 或回归 一般的升维都会带来计算的复杂化 SVM 方法巧妙地解决了这个难题 应用核函数的展开定理 就不需要知道非线性映射 的显式表达式 由于是在高维特征空间中建立线性学习机 所以与线性模型相比 不但几乎不增加计算的复杂性 而且在某种程度上避免了 维数灾难 这一切要 归功于核函数的展开和计算理论 选择不同的核函数 可以生成不同的 SVM SVM 的机理是寻找一个满足分类要求的最优分类超平面 使得该超平面在 保证分类精度的同时 能够使超平面两侧的空白区域最大化 理论上 支持向量机能够实现对线性可分数据的最优分类 以两类数据分 类为例 给定训练样本集 xi yi i 1 2 l x Rn y 1 超平面记作 w xi b 0 为使分类面对所有样本正确分类并且具备分类间隔 就要求它满足 如下约束 yi w xi b 1 i 1 2 l 图 2 1 支持向量机 可以计算出分类间隔为 2 w 因此构造最优超平面的问题就转化为在 约束式下求 8 2 1 2 2 1 minwwww 为了解决该个约束最优化问题 引入 Lagrange 函数 9 1 b a w 2 1 ab Lxwyw 式中 ai 0 为 Lagrange 乘数 约束最优化问题的解由 Lagrange 函数的鞍点 决定 并且最优化问题的解在鞍点处满足对 w 和 b 的偏导为 0 将该 QP 问题 转化为相应的对偶问题即 10 l 1 2 j0 j al 1 2 j0 I 1 j j y j a s t j x i x j y I 1 i i y I 1 j j a i a 2 1 I 1 j j a maxQ a 解得最优解 11 T l 2 1 a a a a 计算最优权值向量 w 和最优偏置 b 分别为 12 I 1 j i x j x j a i y i y b I 1 j j x j y j a w 因此得到最优分类超平面 w x b 0 而最优分类函数为 13 n R b I 1 j i x j x j y j asgn b x sgn w f x x 对于线性不可分情况 SVM 的主要思想是将输人向量映射到一个高维的特 征向量空间 并在该特征空间中构造最优分类面 将 x 做从输入空间 Rn 到特征 空间 H 的变换 得 14 T x l x 2 x 1 x x 以特征向量 x 代替输入向量 x 则可以得到最优分类函数为 15 b I 1 j i x j x j y j asgn b x sgn w f x 在上面的对偶问题中 无论是目标函数还是决策函数都只涉及到训练样本 之间的内积运算 在高维空间避免了复杂的高维运算而只需要进行内积运算 2 3 人工神经网络 人工神经网络是指模拟人脑神经系统的结构和功能 运用大量的处理部件 由人工方式建立起来的网络系统 该网络具有大规模并行协同处理能力和较强 的容错能力和联想能力 同时是一个具有较强学习能力的大规模自组织 自适 应性的非线性动力系统 2 3 1 人工神经网络的原理 神经网络的结构是基本处理单元及其互连方法决定的 如图所示 单个神 经元单元由多个输入 xi i 1 2 n 和一个输出 y 组成 图 3 2 神经元 16 n 1 i i x i wf y 式中 为神经元单元的偏置 阈值 wi 为连接权系数 n 为输入信号数 目 y 为神经元输出 f 为输出变换函数 称为激活函数 2 3 2 反向传播网络 BP BP 网络是一类典型的前馈网络 其它前馈网络有感知器 Perception 自适 应线性网络和交替投影网络等 前馈网络是一种具有很强学习能力的系统 结 构比较简单 且易于编程 前馈网络通过简单非线性单元的复合映射而获得较 强的非线性处理能力 实现静态非线性映射 BP 网络主要特点是能够实现从 n 维到 m 维的非线性映射 它还可以采用梯度下降法实现快速收敛 模型如下图 所示 图 3 3 反向传播网络 反向传播算法的具体流程如下 1 对于给定的样本集 初始化网络结构 初始化权 tx Dc n d H 系数 学习率 阈值 2 根据样本集 D 更新权系数 17 jk k J j jk 18 ji J ji ji 3 计算 如果结束训练 并认为此时的为 J J J pre0 J for i 1 ImageNum b fread fid ImageRow ImageCol uint8 c reshape b ImageRow ImageCol d c e 255 d e uint8 e savepath fullfile savedirectory TestImage num2str i 05d bmp imwrite e savepath bmp waitbar i ImageNum end fclose fid close h w 第二步 将 BMP 图片转换为 mat 文件 保存在 Matlab 的工作空间 预处理之后的数据集格式如下 TrainItem mat 60000 784 TestItem mat 10000 784 TrainLable mat 60000 1 TestLable mat 10000 1 图 3 2 预处理之后的数据集 3 4 决策树分类实验 3 4 1 实验过程 Step1 导入实验数据集 load TestItem mat load TestLable mat load TrainItem mat load TrainLable mat Step2 使用训练数据集及其标签集训练模型 得到决策树 并输出 如图 3 3 所示 Tree classregtree TrainItem TrainLable 图 3 3 决策树模型 Step3 使用训练好的决策树对测试集进行分类 并得到分类结果 value table round eval Tree TestItem Step4 将分类得到的数据类标签与已知的类标签进行比较 画出预测类标 签与实际类标签的对比图 计算得到决策树的准确率 count 0 for i 1 1 10000 if TestLable i value table i count count 1 end end precision count 10000 3 4 2 实验结果 本实验另外又将实验数据进行归一化处理 按照上述实验过程进行相同的 实验 现将实验结果整理如表 3 1 所示 表 3 1 决策树实验结果 准确率计算时间 s 无归一化处理0 8352110 68 归一化处理0 8353108 25 通过观察发现 归一化处理对决策树的分类效果影响不大 在 Step4 中画出的测试集的预测类标签与实际类标签的对比图如图 4 4 所 示 其中 两种标记为重叠的部分即为预测失误的数据 图 3 4 决策树预测类别与实际类别的对比 3 5 SVM 分类实验 3 5 1 实验过程 Matlab R2012a 自带的 SVM 工具箱只能对数据进行二分类 实验结果并不 理想 因此需要预先加载 libSVM 工具箱 对 SVM 的实验性能进行验证 Step1 导入实验数据集 load TestItem mat load TestLable mat load TrainItem mat load TrainLable mat Step2 对训练数据集及测试数据集进行归一化 将数据映射到 0 1 区间 这 里使用的方法是将每一项数据除以最大值 255 也可以使用 Matlab 自带的归一 化函数 mapminmax 效果一样 TrainItem TrainItem 255 TestItem TestItem 255 Step3 利用训练集及其类标签建立分类模型 并输出分类模型的相关参数 训练模型 model svmtrain trainlabel traindata 输出模型参数 model Parameters model Parameters Label model Label nr class model nr class totalSV model totalSV nSV model nSV Step4 使用训练好的模型对测试集进行分类 并得到 SVM 的准确率 PredictLable Acc Toss svmpredict testlabel testdata model TestAccuracy Acc 1 3 5 2 实验结果 实验开始阶段并未对训练数据集和测试数据集进行归一化处理 使用训练 好的 SVM 模型对测试数据集进行分类得到的准确率为 TestAccuracy 11 35 这 个结果与预期的结果相差甚远 与查阅的相关资料上提到的 SVM 的准确率也有 较大的出入 仔细检查了各项相关输出之后发现 预测类标签的输出 PredictLable 表中的数据全部为 1 即将测试数据集的每一个实例的类别均预测 为 1 恰好是 10 的准确率 因此猜想可能是未对数据集进行归一化处理 导 致各个数据之间的差距较大 影响了模型的准确性 对数据进行归一化处理后 随机抽取不同数目的训练集数据对模型进行训 练 实验结果如表 3 2 所示 表 3 2 SVM 实验结果 训练数据集数目 100002000030000400005000060000 准确率 92 22 93 25 93 74 94 03 94 32 94 53 计算时间 s 175 05458 22810 401325 241869 792470 15 实验结果表明 随着使用的训练数据集样本数目的增多 SVM 训练模型的 准确率逐渐升高 对测试数据的预测效果越好 没有出现过拟合现象 在时间 开销上 其增长速率要高于准确率的增长速度 但是在可接受的范围内 3 6 人工神经网络分类实验 3 6 1 实验过程 Step1 导入实验数据集 因为神经网络模型对数据进行处理时是以一列为一 个数据实例的 load TestItem mat load TestLable mat load TrainItem mat load TrainLable mat Step2 在命令行窗口输入 nntool 打开神经网络工具箱的操作界面 图 3 5 神经网络界面 Step3 点击 Import 将输入数据和输出数据导入工作空间 图 3 6 导入数据 Step4 点击 New 按钮 创建一个新的神经网络 并设置它的名称 类型 输入输出及隐层神经元的个数等参数 确认无误后点击 Create 按钮 神经网络 创建成功 创建好的神经网络抽象模型如下图所示 图 3 7 神经网络模型 Step5 导入训练数据集及训练数据标签 点击 Train 按钮使用训练样本对 神经网络模型进行训练 训练过程的相关参数如下图 图 3 8 模型参数 Step6 模型训练完成之后 点击 Simulate 按钮对测试数据集进行分类 将 分类结果和实验误差输出 3 6 2 实验结果 实验过程中 将数据集的类标签用两种形式表示 例如类标签 3 有两种表 示形式 第一种为 10 位表示 t 0001000000 第二种为 1 位表示 t 3 两种表 示形势下分别进行实验 结果有很大的不同 现将实验结果表示如下 1 类标签表示为 10 位 a Performance 神经网络模型训练过程中将训练数据集分为三部分 训练数据集 Train 验 证数据集 Validation 测试数据集 Test 为了防止过拟合现象的发生 一般将 Validation 数据集分类效果最好时训练好的模型进行输出 如图 4 9 所示 在第 153 次迭代时 神经网络模型的效果达到最好 图 3 9 性能 b Training State 图 3 10 显示了神经网络模型训练过程的相关状态 在第 153 次迭代时 神 经网络梯度为 0 0010172 交叉验证的次数为 6 次 该数据表示在神经网络利用 训练数据集进行训练的过程中 验证数据集的误差曲线连续 6 次迭代不再下降 如果随着网络的训练 验证数据集的误差已经不再减小 甚至增大 那么就没 有必要再去训练网络了 因为继续训练下去的话 再利用测试测试集对模型进 行测试的话 测试数据集的误差将同样不会有所改善 甚至会出现过度拟合的 现象 图 3 10 训练状态 c Regression 图 3 11 回归曲线 d Precision Precision 0 9969 2 类标签表示为 1 位 a Performance 图 3 12 显示 当使用一位数据表示类标签是 在第 257 次迭代神经网络模 型的效果达到最好 图 3 12 性能 b Training State 图 3 13 显示了神经网络模型训练过程的相关状态 在第 263 次迭代时 神经网络梯度为 1 9263 交叉验证的次数为 6 次 图 3 13 训练状态 c Regression 图 3 14 回归曲线 d Precision Precision 0 6024 4结论 此次实验利用 Matlab 工具箱对三种分类算法 决策树算法 SVM 算法和神 经网络算法进行实现 通过对 MNIST 数据集进行分类 并且使用其真实数据标 签与预测标签进行比较 能够得到各个分类算法的准确率 通过比较发现 三 种分类算法在算法的执行速度以及分类的准确率方面表现出了显著地差异 4 1 三种分类算法的比较 决策树算法 SVM 算法以及神经网络算法在 MNIST 数据集上的执行速度以 及分类的准确率如表 4 1 所示 表中所列数据为每个算法最佳参数下十次重复 实验数据的平均值 表 4 1 三种分类算法的性能比较 指标决策树算法SVM 算法神经网络算法 准确率 83 53 94 53 99 69 执行时间 s 108 252470 15512 通过分析表 4 1 可以得出以下结论 1 在分类的准确率方面 神经网络的准确率最高 SVM 算法次之 决 策树算法的准确率最低 2 在算法的执行速度方面 决策树算法的的运行速度最快 神将网络算 法的运行速度较慢 SVM 算法的运行速度最慢 3 对 MNIST 数据集的分类而言 综合考虑应该选择神经网络算法 因 为该算法分类的准确率几乎达到 100 而执行速度相对来说不是最慢的 在可 接受的范围内 4 2 决策树算法的分析 通过分析表 4 2 所示的决策树的实验结果可知 决策树分类算法的速度之 快是其最显著的特点 另外 虽然 MNIST 数据集中的数值分布较为分散 数值 之间的差异较大 但是这对决策树算法的准确率并没有影响 因此可以看出 决策树算法对于实验数据的分布均匀与否并不敏感 表 4 2 决策树算法的实验结果 准确率计算时间 s 无归一化处理 0 8352110 68 归一化处理 0 8353108 25 4 3 SVM 算法分析 在对 SVM 算法进行实验时 对其进行了两方面实验 一方面探究了数据的 归一化对算法准确率的影响 另一方面则探究了训练数据集的大小对分类准确 率的影响 实验结果表明 1 未对数据进行归一化时 算法的准确率为 11 35 将全部数据的类 别预测为 1 对数据进行归一化之后 算法的准确率达到 94 53 因此 可以 得出结论 SVM 算法对于分布不均的数据集是较敏感的 2 随着训练数据集样本数目的增加 算法的准确率越来越大 算法执行 时间越来越长 如表 4 3 所示 因此可以得出结论 使用 SVM 算法对 MNIST 数 据集进行分类时 使用的训练数据集的样本越多 分类效果越好 表 4 3 SVM 算法实验结果 训练数据集样本数目 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论