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

news2024/11/15 21:39:54

摘要

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

本论文旨在对常见的分类算法进行综合比较和评估,并探索它们在机器学习分类领域的应用。实验结果显示,随机森林模型在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.coloradmin.cn/o/1528215.html

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

相关文章

高端竞赛活动中的软硬件供应商要如何选择

知识竞赛活动属于“直播”类活动,一旦开始无法重来,所以软硬件稳定可靠至关重要,要历经多次活动的磨炼,性能稳定可靠,要有多重防灾难设计和备用方案。所以一定要选择历经磨炼的高端竞赛软件和执行团队。 可以从以下几个…

好书推荐 《ARM汇编与逆向工程 蓝狐卷 基础知识》

《ARM 汇编与逆向工程 蓝狐卷 基础知识》 与传统的 CISC(Complex Instruction Set Computer,复杂指令集计算机)架构相比,Arm 架构的指令集更加简洁明了,指令执行效率更高,能够在更低的功耗下完成同样的计…

【Ubuntu】FTP站点搭建

配置顺序 前提条件:确保软件仓库可以正常使用,确保已正常配置IP地址 1.安装FTP服务 2.编辑FTP配置文件 3.设置开机自启 4.创建用户 5.配置用户限制名单 6.重启服务 7.查看运行状态 8.测试在同一局域网下的Windows查看文件 1.安装FTP服务 sudo apt insta…

AWS监控,AWS 性能监控工具

监控云部署的性能是 IT 环境正常运行的内在条件。AWS 云是一个架构良好的框架,管理员可以使用专用的AWS 性能监控工具增强服务的功能。执行AWS监视是为了跟踪在AWS环境中积极运行的应用程序工作负载和资源。AWS监视器跟踪各种AWS云指标,以帮助提高在其上…

html--蝴蝶

<!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>蝴蝶飞舞</title> <link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.cs…

使用Navicat远程连接Linux中的MySQL

一、登录MySQL数据库 mysql -uroot -pXjm123456 二、使用mysql数据库 use mysql&#xff1b; 三、查询user表中包含host的字段 select user,host from user;### 该字段中&#xff0c;localhost表示只允许本机访问&#xff0c;可以将‘localhost’改为‘%’&#xff0c;‘%’表…

目标检测——YOLOv4算法解读

论文&#xff1a;YOLOv4&#xff1a;Optimal Speed and Accuracy of Object Detection 作者&#xff1a;Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao 链接&#xff1a;https://arxiv.org/pdf/2004.10934.pdf 代码&#xff1a;https://github.com/AlexeyAB/darkne…

【洛谷 P9232】[蓝桥杯 2023 省 A] 更小的数 题解(字符串+区间DP)

[蓝桥杯 2023 省 A] 更小的数 题目描述 小蓝有一个长度均为 n n n 且仅由数字字符 0 ∼ 9 0 \sim 9 0∼9 组成的字符串&#xff0c;下标从 0 0 0 到 n − 1 n-1 n−1&#xff0c;你可以将其视作是一个具有 n n n 位的十进制数字 n u m num num&#xff0c;小蓝可以从 n…

数据结构奇妙旅程之红黑树

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

【Selenium(四)】

一、浏览器操作 1、设置浏览器缩放大小 driver.set_window_size(长,宽) 2、浏览器的前进后退 #前进 driver.forward()#后退 driver.back() 3、浏览器的刷新 driver.refresh() 二、webdriver常见方法

#linux(使用apt-get下载)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;设置下载源 &#xff08;2&#xff09;在终端切换到root&#xff0c;然后输入apt-get update更新下载源 &#xff08;3&#xff09;安装一…

MATLAB的使用(一)

一&#xff0c;MATLAB的编程特点 a,语法高度简化&#xff1b; b,脚本式解释型语言&#xff1b; c,针对矩阵的高性能运算&#xff1b; d,丰富的函数工具箱支持&#xff1b; e,通过matlab本体构建跨平台&#xff1b; 二&#xff0c;MATLAB的界面 工具栏:提供快捷操作编辑器…

【机器学习】无监督学习算法之:自编码器

自编码器 1、引言2、自编码器2.1 定义2.2 原理2.3 实现方式2.4 算法公式2.5 代码示例 3、总结 1、引言 小屌丝&#xff1a;鱼哥&#xff0c; 今天可以讲一讲 自编码器嘛 小鱼&#xff1a;请说清楚&#xff0c;是什么编码器&#xff1f; 小屌丝&#xff1a;自编码器 小鱼&#…

【LabVIEW FPGA入门】并行执行

利用图形化编程的并行特性以及 FPGA 上 LabVIEW 图的真正并行实现&#xff0c;您可以通过将应用程序代码划分为更小的进程来进一步优化执行速度。与整个应用程序在一个循环中运行相比&#xff0c;这使得每个进程能够实现更高的循环速率和更高的应用程序整体执行速率。 …

Java-SpringAop 编程式事物实现

SpringAop 编程式事物实现 1. 数据库事物特性 原子性 多个数据库操作是不可分割的&#xff0c;只有所有的操作都执行成功&#xff0c;事物才能被提交&#xff1b;只要有一个操作执行失败&#xff0c;那么所有的操作都要回滚&#xff0c;数据库状态必须回复到操作之前的状态 …

【11】工程化

一、为什么需要模块化 当前端工程到达一定规模后,就会出现下面的问题: 全局变量污染 依赖混乱 上面的问题,共同导致了代码文件难以细分 模块化就是为了解决上面两个问题出现的 模块化出现后,我们就可以把臃肿的代码细分到各个小文件中,便于后期维护管理 前端模块化标准…

杰理-手表-卡槽式的sd卡热插拔

杰理-卡槽式的sd卡热插拔 卡槽式的sd卡热插拔&#xff0c;需要把TCFG_SD_ALWAY_ONLINE_ENABLE这个宏关掉

KT1328A主从一体蓝牙模块方案_主机使用流程以及开机返回信息说明

在KT6368A芯片基础上&#xff0c;新增KT1328A蓝牙主从一体版本&#xff0c;实现的是主从一体相互切换&#xff0c;可以设置为主机【类似于手机的角色】&#xff0c;也可以设置为从机角色&#xff0c;通过AT指令 不支持SPP&#xff0c;不支持低功耗 。功耗和之前KT6368A双模版本…

C#,图论与图算法,图(Graph)广度优先遍历(BFS,Breadth First Search)算法与源代码

1 深度优先算法与 宽度优先遍历 深度优先算法(DFS,Deep First Search)与 宽度优先遍历(BFS,Breadth First Search) 是树、图数据结构的基础性、标准性的遍历算法。 2 深度优先算法(DFS,Deep First Search) 深度优先搜索(DFS)是一种用于搜索图形或树数据结构的算法…

C#进阶实践项目(俄罗斯方块)

CSharp进阶实践项目--俄罗斯方块 1.需求分析 2.复用贪吃蛇开始等场景切换的代码 &#xff08;自己写一遍&#xff0c;不难&#xff01;&#xff01;&#xff01;&#xff09; 入口&#xff1a; 更新接口&#xff1a; Game 类&#xff1a; BeginOrEndBaseScene 类&#xff1a;…