news 2026/4/12 19:06:59

探索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/4/11 21:18:54

10倍效率!批量清理Android应用缓存技巧

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个智能缓存清理工具,自动分析/storage/emulated/0/android/data/目录下的缓存文件。要求:1. AI识别可安全删除的缓存;2. 按应用显示可释放…

作者头像 李华
网站建设 2026/4/12 23:14:48

GODEL:微软开源的目标导向对话预训练模型完全指南

GODEL:微软开源的目标导向对话预训练模型完全指南 【免费下载链接】GODEL Large-scale pretrained models for goal-directed dialog 项目地址: https://gitcode.com/gh_mirrors/go/GODEL 你是否曾经梦想拥有一个真正理解你需求的对话AI?一个不仅…

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

Android开发新手必学:应用数据目录完全指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 制作一个Android教学应用,演示如何访问/storage/emulated/0/android/data/目录。功能要求:1. 分步指导获取存储权限;2. 展示目录结构&#xff1b…

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

跨平台SSH客户端终极指南:Termius 7.13.0 Windows免登录版完全手册

跨平台SSH客户端终极指南:Termius 7.13.0 Windows免登录版完全手册 【免费下载链接】Termius7.13.0Windows免登录版下载介绍 Termius 7.13.0 是一款强大的跨平台SSH和SFTP工具,专为Windows用户提供免登录版本,方便直接使用。它支持全平台操作…

作者头像 李华
网站建设 2026/4/4 16:07:07

对比传统设计:CherryStudio官网AI工具节省80%时间

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个设计效率对比计算器web应用,允许用户输入项目参数(页面数量、设计复杂度等),自动计算并可视化对比传统设计流程与使用CherryStudio官网AI工具的时间…

作者头像 李华
网站建设 2026/4/12 15:45:58

Linux Crontab极简教程:5分钟学会定时任务

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个面向初学者的crontab学习工具,功能包括:1. 交互式crontab语法解释器(鼠标悬停查看每个字段含义);2. 可视化时间选…

作者头像 李华