当前位置:网站首页>数学建模学习(67):XGBoost分类模型详细入门案例教程
数学建模学习(67):XGBoost分类模型详细入门案例教程
2022-07-17 01:59:00 【51CTO】
一、案例介绍
本案例对葡萄酒类进行分类,使用XGBoost模型实现,该数据来源: 酒类。
数据集信息:
这些数据是对意大利同一地区种植但来自三种不同品种的葡萄酒进行化学分析的结果。该分析确定了三种葡萄酒中每一种的 13 种成分的含量。
一共13种属性:
- 酒精
- 苹果酸
- 灰分
- 灰分的碱度
- 镁
- 总酚
- 类黄酮
- 非黄酮酚类
- 原花青素
- 颜色强度
- 色调
- 稀释葡萄酒的 OD280/OD315
- 脯氨酸
数据也可以通过我的百度网盘下载:
把文件后缀改为csv,如下:
手动拉一下数据,把第一列的类标签1,2,3全部改成0,1,2:
二、导入模块与数据
导入模块:
读取数据:
运行如下:(值得说明的是,class是类的标签,总共有1,2,3三个标签)
查看数据基本信息:
运行如下:
三、拆分为训练和测试数据集
我们以百分之30作为测试集,另外 70% 用于训练。该random_state参数采用任何整数值,这意味着我们每次运行模型时都会获得可重现的结果。
拆分之后,我们的训练数据存储在 中X_train,y_train我们的测试数据存储在X_test和中y_test。顾名思义,它将X_train用于训练模型的数据。数据在X_test训练期间不使用(或“保留”),而是在训练后用于评估模型并使用一些特殊的性能评估指标评估其准确性。
四、模型
现在数据已经准备好了,我们可以定义XGBClassifier模型的配置。你可以将大量选项传递给模型,这些选项可以进行调整或“调整”以帮助生成更准确的结果 - 这一过程称为超参数调整。
现在,我们将拟合一个所谓的“基本模型”,它几乎没有任何配置选项。这将使我们能够直接看到开箱即用的性能。定义模型参数后,我们将输出分配给一个名为 的对象model。
接下来,我们将使用我们的对象的fit()功能model在我们的训练数据上训练模型。该模型被随机选择了我们上面加载的整个数据集的 70% 部分,其中X和y数据是分开的。当fit()函数运行时,XGBoost 算法将检查数据并寻找特征和目标变量之间的相关性。它将一遍又一遍地重新运行训练过程,直到它在做出预测时变得更加准确。
运行输出如下:
五、绘制特征的重要性排名(拓展)
只需要导入两行代码即可:
运行如下:
五、预测
最后,我们可以使用在训练数据上训练的模型来使用该predict()函数对测试或验证数据集进行预测。这仅需要X数据。我们没有提供(或“保留”)y包含答案的数据,因为我们想评估我们的模型对以前未见过的数据的预测效果如何。
运行输出如下:(可以看到是得到了类)
六、性能评估
为了评估我们的模型在预测它以前没有见过的葡萄酒类别方面的性能,我们可以使用该accuracy_score()函数。y_test这需要两个值:包含实际结果的原始数据和y_pred包含预测结果的预测数组。
模型的准确度分数是通过将正确预测的数量除以总预测的数量来计算的:
结果为:98,很高了。要把这样的步骤当作模板使用。下一篇讲解模型的保存于加载。
边栏推荐
- Theoretical basis and code implementation of dueling dqn [pytoch + pendulum-v0]
- leetcode:50. Pow(x, n)
- 論文閱讀:U-Net++: Redesigning Skip Connections to Exploit Multiscale Features in Image Segmentation
- Leetcode: subsequence problem in dynamic programming
- central limit theorem
- The installation software prompts that the program input point adddlldirectory cannot be located in the dynamic link library kernel32 DLL (download address at the end of the text)
- Envi: (the most detailed tutorial in 2022) custom coordinate system
- Latex environment configuration based on pandoc and vscode
- Zabbix6.0 monitors Dell and IBM server hardware through Idrac and imm2
- 支持工业级瘦设备4G接入,润和软件DAYU120通过OpenHarmony兼容性测评
猜你喜欢
Paper reading: u-net++: redesigning skip connections to exploit multiscale features in image segmentation
Powertor500t reports an error 0x01806803
Frequency school and Bayes school
Subline快捷操作
Simple usage and interface introduction of labelme
MySQL master-slave setup
Use RZ, SZ commands to upload and download files through xshell7
Game theory of catching lice
神器网站目录,全都是刚需好用的网站
Through openharmony compatibility evaluation, the big brother development board and rich teaching and training resources have been ready
随机推荐
Paper reading: u-net++: redesigning skip connections to exploit multiscale features in image segmentation
Unity解决同材质物体重叠产生Z-Fighting的问题
渗透测试-01信息收集
STM32串口发送和接收多个数据教程基于气体传感器实战
Receiver operating curve
web语义化(强调标签-em-斜体)(重点强调标签-strong-粗体)(自定义列表:dl、dt、dd)
MYSQL主从搭建
Use RZ, SZ commands to upload and download files through xshell7
Nim博奔问题
IEEE754 standard floating point format
2.9.2 digital type processing and convenient methods of ext JS
Envi: (the most detailed tutorial in 2022) custom coordinate system
The fifth day of the third question of Luogu daily
基于Matlab的男女声音信号分析与处理
[2016 CCPC Hangzhou j] just a math problem (Mobius inversion)
central limit theorem
374. 猜数字大小(入门 必会)
【LeetCode】735. 行星碰撞
[2016 CCPC 杭州J] Just a Math Problem (莫比乌斯反演)
Local storage localstorage ⽤ method details