Python | XGBoost+SHAP可解释性分析回归预测及可视化算法

Python | XGBoost+SHAP可解释性分析回归预测及可视化算法

立个flag,这是未来一段时间打算做的Python教程,敬请关注。

1 数据及应用领域

我的程序中给出数据data.xlsx(代码及数据见文末),10 列特征值,1 个目标值,适用于各行各业回归预测算法的需求,其中出图及数据自动保存在当前目录,设置的训练集与预测集的比例为 80%:20%。

(1)地球科学与环境科学

  • 遥感反演:利用多源遥感数据预测水体深度、土壤湿度、植被指数、叶面积指数等。
  • 气象与气候研究:预测降水量、气温、风速、风向等连续气象变量。
  • 水文与水资源管理:河流流量、地下水位、径流量预测。
  • 环境污染监测:空气质量指数、PM2.5/PM10浓度、重金属污染水平预测。
  • 地质与矿业:预测矿区地表沉降、地裂缝发展趋势,或矿产储量评估。

(2)生物学与医学

  • 生态学:预测物种分布密度、群落生物量或生态环境因子变化。
  • 公共卫生:基于环境、生活方式或基因组数据预测疾病风险或血液生化指标。
  • 医学影像分析:预测器官或病灶体积、组织属性、功能指标。

(3)工程与物理科学

  • 材料科学:预测材料性能,如强度、硬度、导热性、弹性模量
  • 土木与结构工程:预测建筑物或桥梁的应力、位移、寿命周期。
  • 控制系统与信号处理:连续控制变量预测、信号功率或系统状态预测。

(4)经济与社会科学

  • 经济预测:股价、GDP、通货膨胀率、消费指数预测。
  • 市场分析:销售额、客户需求、产品价格预测。
  • 社会行为:人口增长、流动性、社会指标预测。

(5)数据科学与机器学习方向

  • 时间序列预测:股票价格、气象指标、传感器数据。
  • 多变量因果建模:分析各特征对连续目标变量的影响。
  • 特征重要性解释:结合SHAP、LIME等方法揭示变量贡献。

2 算法理论基础

🌟 一、XGBoost 是什么?

一句话概括:



XGBoost 是一种把“决策树 + Boosting”做到极致的算法。

它的核心思想很简单: 每一棵树都在帮前一棵树“补作业”。最终用一堆小树叠加成一个强大的预测模型。

🔍 二、Boosting 的思想:不断纠错的“班级接力赛”

想象一下,一个班级做题:

  • 第1位同学先做一遍,做得不太好
  • 第2位同学专门看他错的地方继续改
  • 第3位同学继续弥补前两位的不足
  • ……

XGBoost 就是这样: 每一轮都在修前一轮的“错题”。最终把误差压到很低。

🧠 三、XGBoost 为什么比普通的 GBDT 更强?

XGBoost 的“外挂”非常多,但最关键有三点:

✔ ① 更聪明:它能“看一阶”和“看二阶”

普通 GBDT 只看数据的“变化方向”。XGBoost 还会看“变化的速度和曲率”。通俗理解:

  • 别的算法只知道“往左走还是往右走”
  • XGBoost 还能知道“这个方向好不好、稳不稳、是不是悬崖边”

所以它分裂节点时更稳,不容易被噪声带偏。

✔ ② 更能抗过拟合:它天生带“刹车系统”

XGBoost 内置了很多“限制树太复杂”的机制,比如:

  • 限制树的叶子数
  • 限制叶子的输出强度
  • 限制树长多深
  • 降低每棵树的“发力强度”(学习率)
  • 随机抽行抽列,让模型不被少数样本或特征带偏

这些都让它比普通 GBDT 更稳健。

✔ ③ 更快:它被工程师疯狂优化过

XGBoost 的速度,真的不是开玩笑的快。它做了几件非常狠的事情:

1. 特征提前排序:后面所有树直接复用,速度飞起
2. 自动处理缺失值:模型自己决定缺失值应该往“左子树”还是“右子树”
3. 并行计算:一棵树虽然是串行长的,但分裂候选可以并行
4. 极致利用 CPU 缓存:甚至优化了到底怎么放数据才能让缓存命中率更高

🎯 四、为什么 XGBoost 很难被完全替代?

尽管 LightGBM、CatBoost 等算法不断涌现,但 XGBoost 仍然在大量工程场景里占据一席之地。原因很现实:

  1. 鲁棒性极强,几乎不会翻车
  2. 对特征工程依赖小
  3. 可解释性比深度学习强
  4. 对稀疏、缺失、不均衡数据极友好
  5. 参数虽然多,但调参空间巨大,上限高

这是为什么大厂、科研、比赛都离不开它。

3 SHAP理论基础

🌟 一、SHAP 是什么?一句话概括



SHAP 是一套用“合作博弈论”思维解释模型的方法,用来回答:每个特征到底对预测结果贡献了多少?

如果你想知道:

  • 哪些特征最重要?
  • 每个特征是“推高”还是“压低”预测?
  • 不同样本吸收特征影响的方向是否一致?
  • 模型是怎么得出这个数的?

那 SHAP 就是最好的答案。

🧠 二、为什么要 SHAP?传统特征重要性有什么问题?

很多人都用过 XGBoost、Random Forest 的 “特征重要性”,但这些方法有明显缺陷:

❌ 1. 只能告诉你“重要”,不能告诉你“怎么重要”

例如: 某参数重要,但它是推高风速,还是降低风速?不知道。

❌ 2. 不能解释“单一样本”

模型给某一个点预测为 3.2 m/s,到底是由 NDVI 推上去的?还是由降水拉下来的?也不知道。

❌ 3. 依赖模型结构,不通用

不同模型指标不同,难对齐。

SHAP 完美解决了这些痛点。

🎲 三、SHAP 的核心思想:特征是“一起干活的队友”

想象一个团队比赛:

  • 每个队员(特征)都可能对团队成绩有贡献
  • 但是不同的队伍组合,贡献可能不一样
  • 那一个队员的“真实贡献”该怎么算?

SHAP 的思想就是:



让特征像“队员”一样参加所有组合队伍,再统计每个特征平均能让模型表现提高多少。

这就得到每个特征的贡献值(Shapley value)。它是一个“公平分配功劳”的方案。

🧩 四、SHAP 优秀的地方在哪里?

✔ 1. 公平性强

SHAP 的分配方式满足一系列“公平原则”:

  • 谁都没贡献 → 得分为 0
  • 特征越能独立提升模型效果 → 得分越大
  • 同样作用的特征贡献相同

这是其他方法做不到的。

✔ 2. 能画非常直观的可视化

本程序SHAP带的图包括:

这些图都是发论文神器。

论文价值:可解释性直接提升一档

SCI 论文里 reviewer 最爱问:

  • “模型的物理解释是什么?”
  • “为什么这个特征如此重要?”
  • “模型是不是只是黑盒?”

你用 SHAP,一张 beeswarm plot 就能回答所有问题。

✔ 3. 模型无关、模型无偏见

无论你是:

  • XGBoost
  • CatBoost
  • LightGBM
  • Random Forest
  • Gradient Boosting
  • NGBoost
  • 决策树

SHAP 都能解释。

4 其他图示

🎲 一、特征值相关性热图

特征值相关性热图用于展示各特征之间的相关强弱,通过颜色深浅体现正负相关关系,帮助快速识别冗余特征、强相关特征及可能影响模型稳定性的变量,为后续特征选择和建模提供参考。

🎲 二、散点密度图

散点密度图通过颜色或亮度反映点的聚集程度,用于展示大量样本的分布特征。相比普通散点图,它能更直观地呈现高密度区域、异常点及整体趋势,常用于回归分析与模型评估。以下为训练集和测试集出图效果。

5 代码获取

Python | XGBoost+SHAP 可解释性分析回归预测及可视化算法

新手小白/python 初学者请先根据如下链接教程配置环境,只需要根据我的教程即可,不需要安装 Python 及 pycharm 等软件。如有其他问题可加微信沟通。

Anaconda 安装教程(保姆级超详解)【附安装包+环境玩转指南】

https://mp.weixin.qq.com/s/uRI31yf-NjZTPY5rTXz4eA

Read more

旧电脑秒变 AI 员工:OpenClaw 本地部署教程(含环境配置 + 插件开发 + 常见坑)

旧电脑秒变 AI 员工:OpenClaw 本地部署教程(含环境配置 + 插件开发 + 常见坑)

前言 本文基于最新OpenClaw版本编写,适配电脑低配置场景(最低2vCPU+2GiB内存+40GiB SSD),兼容Windows 10/11(优先WSL2)、Ubuntu 20.04+系统,全程纯操作指令,覆盖环境配置、本地部署、插件开发、高频坑排查。核心解决部署卡顿、国内网络适配、插件开发无思路、报错无法排查四大痛点,全程适配国内网络(国内镜像源)、国内大模型(通义千问、阿里云百炼等),无需海外代理,可稳定运行实现自动化办公(文件处理、IM对接、任务调度等)。 一、前置准备(适配优化) 1.1 硬件要求(最低适配) * CPU:Intel i3 4代+/AMD Ryzen 3 2000+(支持虚拟化,

By Ne0inhk
英伟达GTC 2026大会开幕:AI智能体时代正式到来,黄仁勋发布新一代推理芯片与Rubin架构

英伟达GTC 2026大会开幕:AI智能体时代正式到来,黄仁勋发布新一代推理芯片与Rubin架构

导读:北京时间3月16日,全球AI行业的目光聚焦圣何塞。英伟达创始人黄仁勋在GTC 2026大会主题演讲中,正式宣告AI产业从“造模型”迈入“用模型”的新纪元,发布了新一代推理芯片与Rubin架构,并推出对标OpenAI的AI智能体平台。这场科技盛宴不仅揭示了未来三年的技术方向,更将直接影响千行百业的数字化转型进程。 核心新闻摘要 时间:2026年3月16日(北京时间) 事件:英伟达GTC 2026大会在加州圣何塞正式开幕,黄仁勋发表了长达两小时的主题演讲。 核心发布: * 新一代推理芯片:性能较上一代提升50%,功耗降低30%,专门针对AI智能体、大规模推理场景优化。同时推出了更便宜的入门级AI芯片,旨在降低中小企业使用AI的门槛。 * Rubin架构GPU(R100/R200系列):基于3nm工艺与HBM4内存,性能实现代际跃升,聚焦AI工厂与物理AI应用。 * AI智能体平台:对标OpenAI,支持工业制造、办公文档、智能家居等多场景的自主任务执行,能够自主学习用户习惯,优化交互体验。 * 开源大模型圆桌讨论:黄仁勋亲自主持,邀请Perplexity创始人Ar

By Ne0inhk

OpenClaw + MCP:让 AI 助手连接任意工具的终极方案

MCP(Model Context Protocol)是 2026 年最火的 AI 协议,而 OpenClaw 作为开源 AI 助手框架,已经率先支持 MCP 集成。本文将带你深入了解如何用 OpenClaw + MCP 打造一个能连接任意工具的超级 AI 助手。 什么是 MCP? MCP(Model Context Protocol)是一个开源协议标准,用于连接 AI 应用和外部系统。 简单理解:MCP 就像是 AI 的 USB-C 接口。就像 USB-C 让你的电脑能连接显示器、硬盘、手机等各种设备一样,MCP 让你的 AI 助手能连接数据库、文件系统、

By Ne0inhk
AI实践(7)工具函数调用

AI实践(7)工具函数调用

AI实践(8)工具函数调用 Author: Once Day Date: 2026年3月2日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: AI实践成长_Once-Day的博客-ZEEKLOG博客 参考文章:Prompt Engineering Guide提示词技巧 – Claude 中文 - Claude AI 开发技术社区Prompting strategies for financial analysis | ClaudeDocumentation - Claude API DocsOpenAI for developers在LLM中调用函数 | Prompt Engineering GuideAI大模型Function Call技术教程:从入门到精通-ZEEKLOG博客详解 OpenAI 函数调用(Function Calling):让模型具备数据获取与行动能力 - 大A就是我 -

By Ne0inhk