news 2026/3/28 3:39:19

探索LightGBM - shap集成模型在回归任务中的魅力

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
探索LightGBM - shap集成模型在回归任务中的魅力

LightGBM-shap集成模型,回归任务,Python代码 方法本身没有啥可以解释 自带数据集可以直接运行 回归任务,所有图所见即所得,

在数据科学的领域中,回归任务是我们常常需要面对的挑战之一。今天,咱们就来捣鼓捣鼓LightGBM - shap集成模型,看看它在回归任务里能玩出什么花样,并且附上Python代码,让一切所见即所得。

准备工作

首先,我们得把需要的库都装上。这里主要用到lightgbm来搭建模型,shap用于解释模型,还有pandasmatplotlib来处理数据和画图。

import lightgbm as lgb import shap import pandas as pd import matplotlib.pyplot as plt

数据集

咱直接用lightgbm自带的数据集,方便又快捷。

# 加载自带数据集 data = lgb.Dataset(lgb.datasets.regression()[0]) X = data.data y = data.label

这里我们直接从lgb.datasets.regression()获取数据,然后把特征数据存到X,标签数据存到y

构建LightGBM模型

# 划分训练集和测试集 from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 定义LightGBM参数 params = { 'objective':'regression', 'learning_rate': 0.1, 'num_leaves': 31 } # 训练模型 gbm = lgb.train( params, lgb.Dataset(X_train, label=y_train), num_boost_round=100, valid_sets=[lgb.Dataset(X_test, label=y_test)], early_stopping_rounds=10 )

在这部分代码里,先用traintestsplit把数据集分成训练集和测试集。接着定义了一些LightGBM的参数,像objective指定为回归任务,learningrate是学习率,numleaves是叶子节点数。然后用这些参数和训练数据来训练模型,同时指定了验证集,设置了提前停止的轮数。

使用SHAP解释模型

# 计算SHAP值 explainer = shap.TreeExplainer(gbm) shap_values = explainer.shap_values(X_test) # 绘制SHAP摘要图 shap.summary_plot(shap_values, X_test, plot_type="bar") plt.show()

shap.TreeExplainer是专门为树模型计算SHAP值的,这里就用它来解释我们训练好的LightGBM模型。算好SHAP值后,用shap.summary_plot画个摘要图,能直观看到每个特征对模型输出的影响。这个图能让我们快速了解哪些特征在模型里更重要。

模型预测与评估

# 模型预测 y_pred = gbm.predict(X_test) # 评估模型 from sklearn.metrics import mean_squared_error mse = mean_squared_error(y_test, y_pred) print(f"Mean Squared Error: {mse}")

最后,用训练好的模型对测试集进行预测,再用均方误差(MSE)来评估模型的性能。通过这些步骤,咱们就完成了一个基于LightGBM - shap集成模型的回归任务,从数据准备到模型评估,所见即所得。希望大家能从这个小例子里对LightGBM - shap在回归任务中的应用有更清晰的认识。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/25 6:30:07

如何在 Odoo 18 中限制对已确认订单的编辑权限

如何在 Odoo 18 中限制对已确认订单的编辑权限 销售订单是销售方创建的凭证,包含有关所售商品或服务的详细信息。为保障销售订单的完整性、防止未授权编辑,可使用 “锁定功能”:订单确认后,通过锁定操作保护记录安全,并…

作者头像 李华
网站建设 2026/3/26 4:49:18

Shell脚本VS手动操作:效率对比实测

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个对比演示项目,展示Shell脚本与手动操作的效率差异。包含3个测试场景:1) 1000个文件的批量重命名 2) 日志文件的关键信息提取 3) 多服务器配置同步。…

作者头像 李华
网站建设 2026/3/24 21:00:04

KCP协议:如何让网络传输告别卡顿,实现极速流畅体验

KCP协议:如何让网络传输告别卡顿,实现极速流畅体验 【免费下载链接】kcp KCP —— 这是一种快速且高效的自动重传请求(Automatic Repeat-reQuest,简称ARQ)协议,旨在提高网络数据传输的速度和可靠性。 项目…

作者头像 李华
网站建设 2026/3/22 3:25:12

从零开始,30分钟搭建你的第一个多仓库管理系统接口

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个适合新手的多仓库管理入门项目,包含最基础的功能:1. 单商品多仓库库存记录 2. 简单的库存调拨接口 3. 基础查询API。使用Node.js Express框架&#…

作者头像 李华
网站建设 2026/3/24 18:52:53

开源新利器:FaceFusion镜像助力AI创意内容创作

开源新利器:FaceFusion镜像助力AI创意内容创作在短视频与数字人内容爆发的今天,一个普通创作者是否也能轻松实现“换脸级”视觉效果?过去这需要深厚的算法功底、昂贵的算力资源和复杂的工程配置。而现在,随着FaceFusion及其容器化…

作者头像 李华
网站建设 2026/3/23 2:56:52

2025电商多仓库接口实战:从设计到落地

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个电商多仓库管理系统接口,实现:1. 基于用户位置的智能仓库选择 2. 实时库存状态查询 3. 跨仓库调拨审批流程 4. 库存预警推送 5. 销售数据分析API。要…

作者头像 李华