news 2026/7/6 7:56:30

探索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/7/5 2:31:56

css样式attr()获取元素属性值测试

有时候,不想把样式设置太死,想灵活变化,可能会想到动态传值,这时候我们可以使用css的attr()方法,如下所示,根据传入的几个data-width我们分别设置像素px,百分比%,以及默认的百分比,和…

作者头像 李华
网站建设 2026/7/5 23:30:24

Lottie-Android文本动画终极指南:从静态文字到动态交互体验

Lottie-Android文本动画终极指南:从静态文字到动态交互体验 【免费下载链接】lottie-android Render After Effects animations natively on Android and iOS, Web, and React Native 项目地址: https://gitcode.com/gh_mirrors/lo/lottie-android 你是否曾为…

作者头像 李华
网站建设 2026/7/2 2:19:00

信息系统项目管理师报考指南(长图版)

信息系统项目管理师报考指南:从证书介绍、考试介绍、考试科目,报考费用、时间等等。信息系统项目管理师从小白到达人长图科普知识。

作者头像 李华
网站建设 2026/7/4 6:46:21

FaceFusion与DaVinci Resolve的整合方案构想

FaceFusion与DaVinci Resolve的整合方案构想在影视制作和数字内容创作领域,AI驱动的人脸处理技术正以前所未有的速度改变着工作流。从虚拟主播到影视剧补拍,从隐私保护到跨语言本地化,创作者对高质量、高效率的“智能换脸”需求日益迫切。然而…

作者头像 李华
网站建设 2026/7/5 6:12:26

FaceFusion如何应对对抗样本攻击?安全机制解析

FaceFusion如何应对对抗样本攻击?安全机制解析在短视频、虚拟偶像和社交娱乐应用中,人脸融合技术正变得无处不在。用户只需上传一张自拍照,系统就能将其“无缝”移植到明星脸、卡通形象甚至历史人物身上,带来极具沉浸感的视觉体验…

作者头像 李华