news 2026/8/4 12:56:27

机器学习 - 梯度提升

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
机器学习 - 梯度提升

摘要:梯度提升机(GBM)是一种集成学习方法,通过迭代训练多个决策树来提升预测性能。其核心原理是:初始化简单模型后,每次训练新树来修正前序模型的残差,最终组合所有树的结果。GBM适用于回归、分类和排序任务,具有准确率高、稳健性强等优势,但也存在训练时间长、参数调优复杂等局限。示例代码展示了使用Sklearn实现乳腺癌分类,准确率达95.6%。该技术虽解释性有限,但在机器学习领域应用广泛。

目录

机器学习 - 梯度提升

什么是梯度提升机(GBM)?

梯度提升机的工作原理

示例

输出结果

梯度提升机的优势

梯度提升机的局限性


机器学习 - 梯度提升

梯度提升机(Gradient Boosting Machines, GBM)是一种功能强大的机器学习技术,广泛应用于构建预测模型。它属于集成学习方法的一种,通过结合多个弱模型的预测结果,构建出更强大、更精准的模型。

梯度提升机适用于多种应用场景,包括回归问题、分类问题和排序问题。下面我们来了解梯度提升机的工作原理及其在机器学习中的应用。

什么是梯度提升机(GBM)?

梯度提升机是一种迭代式机器学习算法,通过结合多个决策树的预测结果得出最终预测值。

该算法的工作流程是训练一系列决策树,每一棵新决策树都旨在修正前一棵决策树的误差。

在每次迭代中,算法会识别出数据集中最难预测的样本,并着重提升模型在这些样本上的性能。

具体实现方式是拟合一棵新的决策树,该决策树经过优化,以减少难预测样本的误差。这一过程会持续进行,直到满足预设的停止条件(例如达到特定的准确率水平或最大迭代次数)。

梯度提升机的工作原理

训练梯度提升机模型的基本步骤如下:

  1. 初始化模型:算法首先构建一个简单模型(如单棵决策树)作为初始模型。
  2. 计算残差:使用初始模型对训练数据进行预测,残差为预测值与实际值之间的差值。
  3. 训练新模型:基于残差训练一棵新的决策树,目标是最小化难预测样本的误差。
  4. 更新模型:将新模型的预测结果与之前模型的预测结果相结合,并根据更新后的预测结果重新计算残差。
  5. 重复迭代:重复执行步骤 3-4,直到满足预设的停止条件。

通过引入正则化技术(如 L1 正则化和 L2 正则化),可以进一步改进梯度提升机,防止模型过拟合。此外,梯度提升机还可扩展用于处理分类变量、缺失数据和多分类问题。

示例

以下是使用 Scikit-learn(Sklearn)乳腺癌数据集实现梯度提升机的示例代码:

from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.ensemble import GradientBoostingClassifier from sklearn.metrics import accuracy_score # 加载乳腺癌数据集 data = load_breast_cancer() X = data.data y = data.target # 将数据划分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 使用GradientBoostingClassifier定义GBM模型参数 model = GradientBoostingClassifier(n_estimators=100, max_depth=3, learning_rate=0.1) # 训练GBM模型 model.fit(X_train, y_train) # 对测试集进行预测 y_pred = model.predict(X_test) # 评估模型准确率 accuracy = accuracy_score(y_test, y_pred) print("准确率(Accuracy):", accuracy)

输出结果

在该示例中,我们使用 Sklearn 的load_breast_cancer函数加载乳腺癌数据集,并将其划分为训练集和测试集。随后,通过GradientBoostingClassifier定义梯度提升机模型的参数,包括基估计器数量(即决策树的数量)、每棵决策树的最大深度和学习率。

通过fit方法训练梯度提升机模型,使用predict方法对测试集进行预测,最后借助 Sklearn 的metrics模块中的accuracy_score函数评估模型的准确率。

运行上述代码后,将得到以下输出结果:

plaintext

准确率(Accuracy): 0.956140350877193

梯度提升机的优势

在机器学习中,梯度提升机具有以下优势:

  1. 准确率高:梯度提升机通过融合多个弱模型的预测结果构建强模型,因此具有极高的预测准确率。
  2. 稳健性强:梯度提升机专注于提升难预测样本的性能,对异常值和噪声数据具有较强的稳健性。
  3. 灵活性高:适用于多种应用场景,包括回归、分类和排序问题。
  4. 可解释性较好:能够揭示不同特征在预测过程中的重要性,有助于理解驱动预测结果的潜在因素。
  5. 可扩展性强:能够处理大规模数据集,且支持并行计算以加快训练速度。

梯度提升机的局限性

梯度提升机在机器学习应用中也存在一些局限性:

  1. 训练时间长:梯度提升机的计算成本较高,尤其是在处理大规模数据集时,可能需要大量的训练时间。
  2. 超参数调优复杂:需要仔细调整超参数(如学习率、决策树数量和最大深度等)才能达到最优性能。
  3. 模型黑箱特性:最终模型由多个决策树组合而成,难以解释,可能无法清晰揭示驱动预测结果的潜在因素。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/1 9:05:39

fft npainting lama输出路径错误?文件保存问题解决教程

fft npainting lama输出路径错误?文件保存问题解决教程 1. 问题背景与使用场景 你是不是也遇到过这种情况:用fft npainting lama修复完一张图片,点击“开始修复”后系统显示“完成!已保存至: xxx.png”,但你翻遍整个…

作者头像 李华
网站建设 2026/8/1 4:03:07

微调也能很优雅:Unsloth代码结构解析与最佳实践

微调也能很优雅:Unsloth代码结构解析与最佳实践 1. 为什么微调需要“加速器”? 你有没有这样的经历:满怀热情地开始微调一个大模型,结果刚跑起来就发现显存爆了,训练速度慢得像蜗牛爬?明明是想让AI变得更…

作者头像 李华
网站建设 2026/7/28 1:41:53

Z-Image-Turbo为何要设MODELSCOPE_CACHE?缓存机制解析实战指南

Z-Image-Turbo为何要设MODELSCOPE_CACHE?缓存机制解析实战指南 你有没有遇到过这种情况:刚部署好一个文生图模型,信心满满地准备生成第一张图片,结果系统开始“默默”下载几十GB的权重文件——一等就是半小时?更糟的是…

作者头像 李华
网站建设 2026/7/29 11:48:03

5分钟搞定Qwen3-Embedding接口调用,实测有效

5分钟搞定Qwen3-Embedding接口调用,实测有效 你是不是也遇到过这样的问题:想快速测试一个嵌入模型,但部署流程复杂、依赖一堆环境、代码还跑不通?今天这篇文章就是为你准备的。我们聚焦 Qwen3-Embedding-0.6B 这个轻量级高性能文…

作者头像 李华
网站建设 2026/7/29 23:26:15

未来将支持日漫风:unet多风格扩展路线图

未来将支持日漫风:unet多风格扩展路线图 1. 功能概述 本工具基于阿里达摩院 ModelScope 的 DCT-Net 模型,构建了名为“unet person image cartoon compound”的人像卡通化系统,由开发者科哥完成本地化部署与功能增强。该系统可将真实人物照…

作者头像 李华
网站建设 2026/7/31 20:28:10

一句话生成会说话的数字人,Live Avatar黑科技实测

一句话生成会说话的数字人,Live Avatar黑科技实测 1. 引言:一句话唤醒一个“活人” 你有没有想过,只需要一句话、一张图、一段声音,就能让一个虚拟人物在屏幕上开口说话,表情自然、口型精准、动作流畅?这…

作者头像 李华