机器学习中的GBDT模型及其优缺点(包含Python代码样例)

目录

一、简介

二、优缺点介绍

三、Python代码示例

四、总结


一、简介

        GBDT(Gradient Boosting Decision Tree)是一种集成学习算法,被广泛应用于机器学习中的回归和分类问题。它由多个决策树组成,每个决策树都通过迭代逐渐提升预测性能。

        GBDT的基本原理是迭代地训练决策树,每次训练都基于之前训练的结果来进行优化。训练过程基于梯度下降的思想,使用了加法模型(Additive Model)和函数优化方法。


二、优缺点介绍

优点:

  1. 高准确性:GBDT模型在训练集和测试集上都表现良好,可以处理高维度、稀疏特征以及非线性关系等复杂问题。

  2. 强大的泛化能力:GBDT能够通过组合多个弱分类器来形成一个强分类器,减少过拟合的风险。

  3. 可解释性:GBDT模型能够提供特征重要性排名,帮助我们了解哪些特征对于预测结果的贡献较大。

  4. 对于缺失值的鲁棒性:GBDT能够自动处理缺失值,无需额外的处理步骤。

缺点:

  1. 训练时间较长:由于GBDT是一个串行算法,需要按顺序构建每棵决策树,因此训练时间较长。

  2. 对异常值敏感:GBDT模型在训练过程中容易受到异常值的影响,可能导致模型的性能下降。

  3. 需要调节参数:GBDT模型有一些需要手动调节的参数,如树的数量、学习率等,需要通过交叉验证等方法进行调优。


三、Python代码示例

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.metrics import accuracy_score, confusion_matrix, ConfusionMatrixDisplay

# 加载Iris数据集
iris = load_iris()
X = iris.data
y = iris.target
target_names = iris.target_names

# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建GBDT分类器
gbdt = GradientBoostingClassifier()

# 使用训练集训练模型
gbdt.fit(X_train, y_train)

# 使用训练好的模型进行预测
y_pred = gbdt.predict(X_test)

# 计算模型的准确率
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

# 可视化分类结果的混淆矩阵
cm = confusion_matrix(y_test, y_pred)
disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=target_names)
disp.plot()
plt.title("confusion matrix")
plt.show()
plt.savefig(fname="result.png")


四、总结

        GBDT模型是一种强大的集成学习算法,具有很好的泛化能力和可解释性。然而,训练时间较长和对异常值敏感是它的一些缺点。在实际应用中,我们需要根据具体情况评估模型的优缺点,并选择适合的算法。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

之前翻硬币问题胡思乱想的完善

题目背景 小明正在玩一个“翻硬币”的游戏。 题目描述 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零),比如可能情形是 **oo***oooo,如果同时翻转左边的两个硬币&#x…

Transformer位置编码详解

在处理自然语言时候,因Transformer是基于注意力机制,不像RNN有词位置顺序信息,故需要加入词的位置信息来显示的表明词的上下文关系。具体是将词经过位置编码(positional encoding),然后与emb词向量求和,作为编码块(Enc…

9(10)-1(2)-CSS 布局模型+CSS 浮动

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 一、CSS 布局模型1 流动模型(标准流) 二、CSS 浮动1 浮…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 4月6日,星期六

每天一分钟,知晓天下事! 2024年4月6日 星期六 农历二月廿八 1、 水利部:启动洪水防御Ⅳ级应急响应,全力应对闽赣粤桂暴雨洪水。 2、 两部门:中小学校、幼儿园应定期开展教职工、安保人员消防安全培训。  &…

文献学习-28-Endora: 用于内镜仿真的视频生成模型

Endora : Video Generation Models as Endoscopy Simulators Authors: Chenxin Li, Hengyu Liu, Yifan Liu, Brandon Y. Feng, Wuyang Li, Xinyu Liu, Zhen Chen, Jing Shao, Yixuan Yuan Keywords: Medical Generative AI Video Generation Endoscopy Abstract 生成模型有…

11 - 三八译码器和存储器组织

---- 整理自B站UP主 踌躇月光 的视频 1. 38译码器 1.1 真值表 A2A1A0O7O6O5O4O3O2O1O00000000000100100000010010000001000110000100010000010000101001000001100100000011110000000 O 0 A 2 ‾ A 1 ‾ A 0 ‾ O 1 A 2 ‾ A 1 ‾ A 0 O 2 A 2 ‾ A 1 A 0 ‾ O 3 A 2 ‾ A…

C#复习——变长参数和可选参数

变长参数——params 参数默认值 总结 配合泛型类实现迭代器的语法糖使用:

【Linux】Ubuntu 压缩与解压缩

首先在Windows下安装7Zip压缩软件,以便于可以生成 .tar 和 .bz2 的压缩格式的文件。例如新建一个test文件夹,操作后如下。 gzip 压缩工具:负责 .gz 格式的文件的压缩和解压缩,gzip --help 查看使用帮助; 压缩文件&…

yolov8实现用已经训练好的模型去实现数据集的自动标注

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、找到default.yaml文件二、修改default.yaml文件三、代码实现四、生成结果展示补充(呼应前面代码训练数据集的路径位置) 前言 我们经…

ctf_show笔记篇(web入门---jwt)

目录 jwt简介 web345: web346: web347: web348: web349: web350: jwt简介 JSON Web Token(JWT)通常由三部分组成 Header(头部):包含了两部分信息&…

LC 222.完全二叉树的节点个数

222. 完全二叉树的节点个数 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中…

软件测试--用例

目录 测试用例的基本要素 测试用例的设计方法--针对黑盒测试(重要) 等价类 边界值 错误猜测法 场景设计法 因果法 判定表法 正交表法 测试用例设计万能公式 使用工具控制网络和测试接口 控制网络(Fiddler) 接口测试&a…

UV胶水能够粘接聚碳酸酯PC吗?

UV胶水能够粘接聚碳酸酯PC吗? 聚碳酸酯PC是一种高性能工程塑料,透明、坚固和耐高温。常用于制造透明零件、光学设备、以及一些耐热和强度要求较高的应用,如:汽车零件、眼镜镜片、电子设备外壳等。 聚碳酸酯PC的化学性质是一种非极…

【c++】初阶模版与STL简单介绍

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本篇文章介绍一下模版和对STL进行简单的介绍,后续我们进入对STL的学习! 目录 模版1.泛型编程2.函数模板2.1函数模板的原理2.2模版的实例化…

力扣面试150: O(1) 时间插入、删除和获取随机元素 HashMap结合数组

Problem: 380. O(1) 时间插入、删除和获取随机元素 文章目录 思路复杂度Code 思路 👩‍🏫 三叶题解 复杂度 时间复杂度: O ( 1 ) O(1) O(1) 空间复杂度: O ( n ) O(n) O(n) Code class RandomizedSet {static int[] nums new int[200_010];//存…

python_3

文章目录 题目运行结果模式A模式B模式C模式D 题目 mode input("请选择模式:") n int(input("请输入数字:"))if mode "A" or mode "a":# 模式A n:输入的层数 i:当前的层数# 每行数字循环次数 ifor i in range(1, n 1):for j in r…

武汉星起航电子商务有限公司,引领跨境电商新潮流的卓越引擎

在全球经济不断演进的今天,跨境电商作为国际贸易的新引擎,正逐渐崭露头角。在这场全球商业的变革中,武汉星起航电子商务有限公司以其丰富的实战运营经验和专业的团队,成为了这个领域的佼佼者。 自2017年以来,武汉星起…

移动Web学习04-移动端订单结算页PC端个人中心页面

5、电商结算页面案例 css body{background-color: #F2F2F2; } * {box-sizing: border-box;margin: 0;padding: 0; }.main{padding: 12px 11px 80px; }.pay{display: flex;height: 80px;background-color: #fff;bottom: 0;width: 100%;border-top: 1px solid #ededed;position:…

某虚假交友APP(信息窃取)逆向分析

应用初探 在群里水群的时候 群u发了一个交友APP 于是拿来分析一下 可以看到应用打开后又一个登录的界面 需要用户输入手机号与验证码进行登录 #在线云沙箱分析 将APK放入某安信云沙箱中分析 提示应用请求了过多的敏感权限 逆向分析 直接拖入Jadx分析 好在程序没有加固 也没…

vulnhub靶机: DC-9

dc-9靶机下载 将靶机设置为NAT模式,本次实验使用的内网网段为192.168.198.0/24,kali的ip为192.168.198.172 信息搜集 ip主机扫描: nmap -sP 192.168.198.0/24 确定靶机ip为192.168.198.171 主机端口扫描: nmap -T4 -A -v 192…