news 2025/12/27 15:05:43

探索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进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/19 12:49:23

Apache PDFBox入门指南:快速掌握PDF处理的5大关键技巧

Apache PDFBox入门指南:快速掌握PDF处理的5大关键技巧 【免费下载链接】pdfbox Apache PDFBox: 是一个用于处理PDF文档的开源Java库。它允许开发者读取、写入、操作和打印PDF文档。适合Java开发者,特别是那些需要处理PDF文档的业务应用开发者。特点包括支…

作者头像 李华
网站建设 2025/12/24 1:36:29

VC++运行库是什么?小白也能看懂的解释

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个交互式VC运行库学习助手,面向计算机初学者。包含以下功能:1)动画演示VC运行库的作用原理;2)常见错误提示解读(如缺少dll文件)&#xff1…

作者头像 李华
网站建设 2025/12/19 12:46:50

创芯科技USB-CAN分析仪驱动终极指南:快速安装与配置全流程

创芯科技USB-CAN分析仪驱动终极指南:快速安装与配置全流程 【免费下载链接】创芯科技USB-Can分析仪驱动 本仓库提供创芯科技USB-Can分析仪的驱动程序,该驱动程序专为配合Can-Test软件使用而设计。通过安装此驱动,用户可以顺利连接并使用创芯科…

作者头像 李华
网站建设 2025/12/25 10:38:09

Windows平台FFmpeg静态库集成完整指南

Windows平台FFmpeg静态库集成完整指南 【免费下载链接】ffmpeg-static-libs FFmpeg static libraries built with VS2015/VS2017 for Windows development. 项目地址: https://gitcode.com/gh_mirrors/ff/ffmpeg-static-libs FFmpeg静态库为Windows开发者提供了强大的多…

作者头像 李华
网站建设 2025/12/24 4:15:17

NeMo Guardrails多线程处理完整指南:如何实现高并发AI安全防护

NeMo Guardrails多线程处理完整指南:如何实现高并发AI安全防护 【免费下载链接】NeMo-Guardrails NeMo Guardrails is an open-source toolkit for easily adding programmable guardrails to LLM-based conversational systems. 项目地址: https://gitcode.com/g…

作者头像 李华