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

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

image.gif

摘要

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

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

本研究使用了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. 分类结果:根据所有决策树的分类结果,采用多数投票原则进行统计,得出随机森林算法的最终分类结果。决策树 i 对测试样本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个神经元用 表示。假设每个神经元都具有激活函数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

图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.


目录
相关文章
|
1月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
103 4
|
10天前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
28 2
|
28天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
45 1
|
1月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
98 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 算法
深入探索机器学习中的决策树算法
深入探索机器学习中的决策树算法
41 0
|
1月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
36 0
|
2月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
2月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
78 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
1月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的决策树算法
【10月更文挑战第29天】本文将深入浅出地介绍决策树算法,一种在机器学习中广泛使用的分类和回归方法。我们将从基础概念出发,逐步深入到算法的实际应用,最后通过一个代码示例来直观展示如何利用决策树解决实际问题。无论你是机器学习的初学者还是希望深化理解的开发者,这篇文章都将为你提供有价值的见解和指导。