【机器学习】基于机器学习的分类算法对比实验

摘要

基于机器学习的分类算法对比实验

本论文旨在对常见的分类算法进行综合比较和评估,并探索它们在机器学习分类领域的应用。实验结果显示,随机森林模型在CIFAR-10数据集上的精确度为0.4654,CatBoost模型为0.4916,XGBoost模型为0.5425,LightGBM模型为0.5311,BP神经网络模型为0.4907,而经过100次迭代的深度学习模型达到了0.6308的精确度。相对于随机森林模型,CatBoost和XGBoost模型表现出更好的性能,而深度学习模型在CIFAR-10数据集上展现出卓越的性能。

关键字:随机森林;CatBoost;XGBoost;LightGBM;BP神经网络;深度学习

A Comparative Experimental Study of Machine

Learning Classification Algorithms

Abstract:This paper aims to comprehensively compare and evaluate common classification algorithms and explore their applications in the field of machine learning classification. The experimental results show that the accuracy of the random forest model on the CIFAR-10 dataset is 0.4654, the CatBoost model is 0.4916, the XGBoost model is 0.5425, the LightGBM model is 0.5311, the BP neural network model is 0.4907, and the deep learning model with 100 iterations achieves an accuracy of 0.6308. Compared to the random forest model, the CatBoost and XGBoost models demonstrate better performance, while the deep learning model exhibits outstanding performance on the CIFAR-10 dataset.

Keywords: Random Forest; CatBoost; XGBoost; LightGBM; BP Neural Network; Deep Learning

 实验项目地址:https://colab.research.google.com/drive/17ZhwA8J0EoBoUg4eJOniVWLJSWJYRTJQ#scrollTo=_2An7ZsbV8i-&uniqifier=3


目录

摘要

1 数据集

2 分类算法

2.1 随机森林

2.2 CatBoost

2.3 XGBoost

2.4 LightGBM

2.5 BP神经网络

2.6 深度学习

3 实验分析

4 参考文献


1 数据集

本研究使用了CIFAR-10数据集[1],该数据集是由加拿大高级研究所创建的常用计算机视觉数据集。CIFAR-10数据集包含10个类别的彩色图像,每个类别有6000张图像,总计60000张图像,图像尺寸为32x32像素。数据集划分为训练集(50000张图像)和测试集(10000张图像)。

为了确保数据质量和实验需求,对CIFAR-10数据集进行了归一化处理、图像增强、数据扩充和标签编码。归一化将像素值缩放到[0, 1]范围内,以适应模型训练。图像增强和数据扩充通过随机变换增加数据多样性,提升模型泛化能力。标签编码采用独热编码表示类别标签。

引用CIFAR-10数据集时,遵循科研规范,明确提及数据集来源、特征和预处理步骤,以确保数据可靠性和可复现性。


2 分类算法

2.1 随机森林

随机森林是一种基于集成学习的算法,其核心思想是构建多个相互独立的决策树,并将它们的分类结果进行综合。由于其大量的数据样本,随机森林能够有效地容忍异常值,减少过拟合的风险,并具有较高的预测精度,适用范围广[2]。在传统的随机森林方法中,决策树的数量是一个超参数,需要通过观察模型在测试集上的表现来选择最优的决策树数量,然而这个过程的效率较低。相对于其他机器学习算法而言,随机森林在分类问题上表现出色。随机森林的构建过程包括Bootstrap抽样、决策树生成和分类结果投票。具体步骤如下:

  1. Bootstrap抽样:采用有放回的随机抽样方法,从样本集中有放回的抽取θ组数据,N次抽样后得到N个包含 θ 组数据的训练集。
  2. 构建决策树:使用CART等决策树算法构建N棵决策树。
  3. 分类结果:根据所有决策树的分类结果,采用多数投票原则进行统计,得出随机森林算法的最终分类结果。决策树 对测试样本A的分类结果可表示为:

则随机森林分类模型的输出为:

式中: 表示决策树基分类器;lab表示决策树对样本A的分类结果,lab=1表示辨识结果为正常,lab=2表示辨识结果为异常; 为随机森林的分类;N表示随机森林中决策树的数量[3]。


2.2 CatBoost

CatBoost是一种基于梯度提升决策树原理的算法,通过迭代训练决策树模型,并利用梯度提升方法优化预测性能。其在特征处理方面具有独特创新,能自动处理类别型特征,无需手动编码或独热编码,采用有序目标编码技术,将类别型特征值映射为对应目标变量的平均值,更有效地处理类别型特征[4]。此外,CatBoost引入自适应学习率自动调整每个决策树的学习率。通过根据树的复杂度和梯度大小动态调整学习率,提高决策树模型的训练效果和性能。

第一,自动处理类别特征。假设数据集,其中:是一个包含m个特征的向量,是标签的值。在处理类别型特征时,一般用整个数据集的标签值的均值来表示,即

为防止过拟合,首先,它对数据集进行随机排列,生成一个随机排列序列,接着,对于每个样本的类别型特征取值并转换,转换的方法是取该样本之前标签值的均值,再结合先验值P和先验值的权重,即

特征组合处理是CatBoost算法的一个重要特点。在生成树的初次分裂时,CatBoost算法并不对特征进行任何处理。然而,在二次分裂时,它会将树中的所有类别型特征与数据集中的所有类别型特征进行组合,从而生成新的特征,以增强模型的表达能力。

CatBoost算法生成的树都是对称树的设计,这种设计能够有效避免过拟合,并提高CatBoost的运行效率和预测性能。这种对称树的特性使得模型更加稳定和鲁棒,有助于提升算法在实际应用中的效果。


2.3 XGBoost

XGBoost是基于改进GBDT的算法。该算法采用目标函数的二阶泰勒展开,并引入惩罚项来防止过拟合。XGBoost是一种高效可扩展的机器学习算法,基于梯度提升框架,通过集成多个弱学习器(通常是决策树)逐步优化损失函数,提升整体模型性能[5]。在分类、回归、排序和推荐系统等许多机器学习任务中,XGBoost取得了显著成果。其卓越性能和广泛应用使其成为科研和实践领域中重要的算法之一。

泰勒展开如下:

此时目标函数近似为:

其中:

表示预测值,表示第i个样本所属的类别,t表示生成树的数量,表示第t棵树模型,T表示叶子结点的数量,表示叶子结点向量的模,表示系数,constant表示常数。

目标函数由两个主要部分组成:损失函数和正则项。损失函数用于评估模型的拟合效果,而正则项用于降低过拟合的风险。正则化项中的通过控制叶子节点的数目及其权重来控制树的复杂度,观察目标函数,发现为常数,常数项不影响模型优化可删,并将表达式代入公式,此时目标函数为

目标函数由损失和正则化两部分组成。损失部分对训练样本集进行累加,其中所有样本的输入映射到CART树的叶子节点。因此从叶子节点出发,对所有叶子节点进行累加,得

,其中表示的是对映射为第j个叶子节点的所有输入样本的一阶导数求和,表示的是对其二阶导数求和。因为各个叶子节点之间都相互独立,且都是确定量,最小化公式(10)的目标函数可得

其目标函数是

的值越小,代表数的结构越好。


2.4 LightGBM

LightGBM是微软于2017年提出的一种创新的训练算法。它在GBDT算法的基础上进行改进,具有快速训练、低内存消耗和高准确率的优势[6]。LightGBM引入了两个新技术:基于梯度的单边采样和互斥特征捆绑。这些技术通过减少大样本总量和降低特征维度的优化来解决大规模统计实例和大样本特征之间的相关性问题。

Gradient Boosting是一种基于迭代的机器学习方法,通过逐步增加子模型来最小化损失函数。其模型表示如下:

损失函数是在增加一个子模型时,用于衡量模型预测与实际观测之间差异的一种函数。当增加一个子模型时,损失函数的梯度将朝着信息量次高的变量方向下降,这一过程可用以下数学表达式表示:

LightGBM采用了一种按叶子分裂的决策树子模型,以减少计算开销。为了避免过拟合,需要控制树的深度和叶子节点的最小数据量。该模型采用基于直方图的决策树算法,将特征值划分为多个小的"桶",通过在这些"桶"上进行分裂,从而降低计算和存储成本。此外,LightGBM还对类别特征进行了处理,进一步提高了算法的性能。


2.5 BP神经网络

BP神经网络是一种被广泛应用于科研领域的模型,由多层神经元组成,包括输入层、输出层和隐含层[7]。隐含层位于输入层和输出层之间,尽管不直接与

外界相连,但其状态对输入和输出之间的关系具有重要影响。

本研究中的文本分类器采用了三层前馈型BP神经网络,包括输入层、隐含层和输出层。在这个网络中,输入层接收原始文本数据,将其转换为特征向量表示。隐含层是网络的核心部分,它通过对输入层的特征进行非线性变换和组合,提取出更高级的语义特征。输出层接收隐含层的输出,根据学习到的权值和偏置,将文本映射到不同的分类类别上。

在BP神经网络中,权值是经过训练数据进行调整而得到的系数。这些经过调整的权值起着至关重要的作用,它们决定了输入向量和输出向量之间的相关性,进而决定了文本在不同类别上的分类结果。通过训练和优化过程,BP神经网络能够学习到合适的权值,以提高分类准确性并适应各种不同的输入数据。这种权值调整的过程是神经网络学习和适应的关键,使得网络能够处理复杂的文本分类任务。

假设神经网络有m层,其中输入层为样本X。对于第k层的第i个神经元,其输入总和表示为,而表示该神经元的输出。权值之和从第k-1层的第j个神经元到第i个神经元用W_{ij}表示。假设每个神经元都具有激活函数f。可以用以下数学式来描述这些变量之间的关系:

反向传播(Backpropagation)算法是一种基于最速下降法的权值更新方法。它通过根据误差的负梯度方向对权值进行调整,以达到最小化误差函数的目的。误差函数e衡量了期望输出与实际输出之间的差异,通常以差的平方作为标准来度量误差的大小:

其中是实际输出,是输出单元的期望值。因为BP算法按误差函数负梯度方向修改权值,故权值的修改量与e的关系如下:

η为学习率,按照BP神经网络的原理,最终完成的计算。


2.6 深度学习

深度学习是一种基于人工神经网络的概念,旨在通过模拟人脑的神经网络结构和工作方式来解决复杂的模式识别和决策问题[8],通过建立多层神经元之间的信息传递从而学习样本特征。其核心思想是通过多层次的非线性变换来学习和提取数据的高层次抽象表示。


3 实验分析

混淆矩阵是分类问题中常用的评估分类器性能的工具,用于比较分类器预测结果与实际标签之间的一致性。混淆矩阵包含四个主要条目。基于混淆矩阵,可以计算出准确率、精确率、召回率和F1值等一系列分类性能指标。以下是六种分类算法在混淆矩阵实验中的结果:

图1 混淆矩阵

图2 RF

图3 CatBoost

图4 XGBoost

图5 LightGBM

图6 BP神经网络

图7 深度学习

XGBoost模型的精确度为0.5425,即能够正确分类约54.25%的样本。相较于之前提到的随机森林模型和CatBoost模型,XGBoost模型的性能进一步提升,这表明XGBoost在CIFAR-10数据集上对图像分类任务的性能更好。除了精确度指标,还可以对其他评价指标进行分析。例如,可以计算模型的召回率、准确率和F1值等,以获得更全面的性能评估结果。

LightGBM模型的精确度为0.5311,即能够正确分类约53.11%的样本。从精确度来看,0.5311的结果略高于随机森林模型的0.4654,但相对于CatBoost模型的0.4916和XGBoost模型的0.5425,略低一些。然而,仅凭精确度无法全面评价模型的性能,因为不同的算法可能在不同的数据集上表现出不同的特点和优势。

BP神经网络模型在CIFAR-10数据集上的精确度为0.4907,即能够正确分类约49.07%的样本。从精确度来看,0.4907的结果表明BP神经网络在CIFAR-10数据集上的性能有一定局限性。这可能是因为BP神经网络的训练过程容易受到局部最小值、梯度消失或梯度爆炸等问题的影响。为了提高BP神经网络的性能,可以尝试调整网络结构、使用更优化的激活函数和优化算法,或者采用其他更适合处理图像数据的深度学习模型。

深度学习模型在CIFAR-10数据集上经过100次迭代的精确度为0.6308,即能够正确分类约63.08%的样本。从精确度来看,0.6308的结果相对较高,反映深度学习的训练效果更好,但其训练和调整过程相对复杂。深度学习模型的训练需要大量的计算资源和时间,以及对超参数的精细调整。此外,过拟合问题也需要引起关注,因为深度学习模型具有较高的参数数量和复杂度,容易在训练集上获得较好的性能,但在测试集上表现不佳。

综上所述,深度学习模型在CIFAR-10数据集上表现良好,达到了0.6308的精确度,深度学习模型通过逐层学习特征表示,可以自动发现数据中的抽象特征和复杂模式,由于深度学习模型的复杂结构和大规模数据集的使用所致,并且需要进行大量的迭代过程通过不断的降低损失和反向传播从而实现较好的效果,虽然效果与之机器学习更优,但耗费的时间成本和算力都是很昂贵的,因此实际应用中需要综合考虑多方因素确定使用的方法,做到方法的实用性。

表2

深度学习

迭代10次

迭代20次

迭代100次

精确度

0.4796

0.5337

0.6308

(d)优化算法

图8 深度学习

在迭代10次的实验结果显示,深度学习模型在 CIFAR-10 数据集上的精确度为 0.4796。这意味着模型能够正确分类约 47.96% 的样本。从精确度指标来看,这个结果相对较低,表明模型的性能还有提升的空间如图8。

迭代20次的实验结果显示,深度学习模型在 CIFAR-10 数据集上的精确度为 0.5337。这表示模型能够正确分类约 53.37% 的样本。相对于迭代10次的结果,精确度有所提高。随着迭代次数的增加,模型的损失逐渐降低,同时精确度也逐步提高。

迭代100次的实验结果显示,深度学习模型在 CIFAR-10 数据集上的精确度为 0.6308。这意味着模型能够正确分类约 63.08% 的样本,随着迭代次数的持续增加,可以明显观察到模型的性能得到了显著的改善和提升。

随着迭代次数的增加,模型性能明显提升。随着训练的进行,模型逐渐学习到更准确的特征和模式,从而使得精确度不断增加。这表明在深度学习模型中,较多的迭代次数可以帮助模型更好地适应数据集,提高其分类能力和泛化能力。在收集实验结果和进行分析时,通过对比使用不同优化算法和传统梯度下降算法的实验结果,发现AdaGrad算法在加速收敛和提高性能方面表现出色。


4 参考文献

[1] A. Krizhevsky, V. Nair, and G. Hinton. CIFAR-10 (Canadian Institute for Advanced Research). Technical Report, 2009.

[2] L. Breiman. Random Forests. Machine Learning, 2001, 45(1): 5-32.

[3] T. K. Ho. The Random Subspace Method for Constructing Decision Forests. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1998, 20(8): 832-844.

[4] A. I. Ignatiev, G. Gusev, and M. Y. Khachay. CatBoost: Gradient Boosting with Categorical Features Support. Proceedings of the 31st Conference on Neural Information Processing Systems (NIPS), 2017, 6638-6648.

[5] T. Chen and C. Guestrin. XGBoost: A Scalable Tree Boosting System. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 2016, 785-794.

[6] G. Ke, Q. Meng, T. Finley, et al. LightGBM: A Highly Efficient Gradient Boosting Decision Tree. Journal of Machine Learning Research, 2018, 19(1): 1-6.

[7] D. E. Rumelhart, G. E. Hinton, and R. J. Williams. Learning Representations by Back-Propagating Errors. Nature, 1986, 323(6088): 533-536.

[8] Y. LeCun, Y. Bengio, and G. Hinton. Deep Learning. Nature, 2015, 521(7553): 436-444.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/762819.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Obsidian+PicGo+Gitee搭建免费图床

之前使用PicGoGitee配合Typora,后来因为换电脑Typora管理笔记不方便,换到Obsidian笔记,此处记录重新搭建图床的坑与经验。 主要参考# picGogitee搭建Obsidian图床,实现高效写作! 1 下载安装PicGo 下载链接https://mo…

u盘表格不小心删除怎么恢复数据,u盘误删的表格怎么找回

u盘表格不小心删除怎么恢复数据?当我们使用U盘存储重要数据时,不小心删除文件或者整个表格可能会导致数据的丢失。这种情况下,我们需要采取一些措施来恢复被删除的数据。u盘误删的表格怎么找回?幸运的是,有一些方法可以帮助我们恢复U盘中的数据,即使它们被删除了。在本文…

球面数据的几何深度学习--球形 CNN

目录 一、说明二、球形 CNN概述三、球面数据的对称性四、标准(平面)CNN的局限性五、卷积并发症六、球面卷积七、球面卷积是不够的 一、说明 球面数据的几何深度学习–球形 CNN。通过对物理世界的平移对称性进行编码,卷积神经网络 &#xff…

备战2024年中学生古诗文大会(初中组):单选题真题和独家解析

今天我们继续来做中学生古诗文大会(初中组)——简称初中生古诗文大会的一些真题,让大家了解初中生古诗文大会的考察内容和形式,并且提供了我独家的题目解析和答案,供初中的同学们学习和参考。 有一些朋友问中学生古诗…

软考机考新模式,有什么影响?

关于软考考试改机考的影响,初步预测可能会有以下几个影响: 1、需要掌握的基础知识要求更高 机考可能导致每个人的题目不同,因此需要更扎实地掌握基础知识,认真备考每个知识点,核心分值可能会全部打散,不能…

2024-3-21-Qtday2作业

要求: 自由发挥登录窗口的应用场景,实现一个登录窗口界面。(不要使用课堂上的图片和代码,自己发挥,有利于后面项目的完成) 要求: 1. 需要使用Ui界面文件进行界面设计 2. ui界面上的组件相关…

外腔激光器(ECL)市场发展空间大 外腔半导体激光器(ECDL)是主要产品类型

外腔激光器(ECL)市场发展空间大 外腔半导体激光器(ECDL)是主要产品类型 外腔激光器(ECL),是一种利用外腔进行光反馈的激光器。根据新思界产业研究中心发布的《》2024-2029年中国外腔激光器&…

docker快速安装达梦数据库

docker快速安装达梦数据库 文章目录 docker快速安装达梦数据库前言环境准备下载镜像运行、配置容器 前言 因为公司需要将自己的底代码平台与客户的需求做适配,客户要求必须满足信创要求,使用达梦数据库。所以需要将原有的MySQL数据库与达梦数据库适配&a…

如何在 Odoo 17 的 齿轮菜单⚙️ 中添加新菜单

在 Odoo 中,齿轮菜单是一个重要组件,允许用户访问与系统内不同模型和功能相关的各种配置选项和设置。它通常由位于用户界面左上角的齿轮或齿轮图标表示。下图显示了 "sale.order "模型的齿轮菜单。 默认情况下,我们在 CogMenu 中提…

8 克隆虚拟机

后期集群我们需要使用多台服务器,此处我们先克隆三台,master,slave01,slave02. 1.先关闭模版虚拟机。再选择 模版虚拟机hadoop100右击--》管理 --》克隆 2.下图中特别注意:建议使用集群的名字作为虚拟机名称。目前克隆主机master. 以上步骤完…

京东云开发者:DDD 学习与感悟 —— 向屎山冲锋

原文地址:https://mp.weixin.qq.com/s/Hvq1ttBopbxypatVcKcLiA 软件系统是通过软件开发来解决某一个业务领域或问题单元而产生的一个交付物。而通过软件设计可以帮助我们开发出更加健壮的软件系统。因此,软件设计是从业务领域到软件开发之间的桥梁。而DDD是软件设计…

智慧公厕是干什么的?智慧公厕系统有哪些内容?

公共厕所一直是城市管理的难题,传统的管理方式无法解决诸多问题,如环境卫生不佳、查找厕位难、消耗品提供不及时、设施设备容易被破坏等。而随着科技的不断发展,智慧公厕系统应运而生,为公共厕所的管理带来全新的思路和解决方案。…

Swift知识点(二)

17. 字面量协议、模式匹配、条件编译 字面量(Literal) var age 10 var isRed false var name "Jack"上面代码中:10、false、"Jack"就是字面量 可以看到,初始化过程很简单,直接赋值即可 Swif…

AI应用开发-基于python的知识图谱技术

AI应用开发相关目录 本专栏包括AI应用开发相关内容分享,包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 AI应用开发流程概…

力扣爆刷第102天之hot100五连刷96-100

力扣爆刷第102天之hot100五连刷96-100 文章目录 力扣爆刷第102天之hot100五连刷96-100一、136. 只出现一次的数字二、169. 多数元素三、75. 颜色分类四、31. 下一个排列五、287. 寻找重复数 一、136. 只出现一次的数字 题目链接:https://leetcode.cn/problems/sing…

Python PyQt5

实现界面开发,与tkinter功能一致,网上已有详细资料,此处仅记录自己的代码: 文章目录 1. 实操1.1 main.py1.2. 窗体模块代码1.3. 页面效果 2. 参考资料2.1. PyQt5 参考资料2.2. tkinter 参考资料 3. 安装注意事项3.1. 下载3.2 Pyc…

python --- 练习题3

目录 1、猜数字游戏(使用random模块完成) :继上期题目,附加 2、用户登录注册案例 3、求50~150之间的质数是那些? 4、打印输出标准水仙花数,输出这些水仙花数 5、验证:任意一个大于9的整数减去它的各位…

Blender小:图片转mesh,并展UV

其实就这么一个插件:Image2Mesh https://github.com/kedepot/i2m-std blender加载完图片之后点这个就行 到了这一步还不行如果直接放到unity中使用的话,添加材质和贴图之后每一个小块都是独立的区域来展示贴图,所以需要展UV

蓝牙HFP协议推荐的语音丢包补偿算法浮点实现的定点化

最近在做蓝牙的宽带语音通话。相对于蓝牙窄带语音,主要变化是把采样率从8k变到16k,以及编解码器从CVSD变成mSBC(modified SBC,改进的SBC)等。蓝牙语音通话相关的HFP(Hand Free Profile)强烈建议…

【随笔】Git -- 解决提交时本地与目标分支不一致导致提交失败(三)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…