news 2026/8/1 14:03:10

NGBoost-shap方法回归任务,由斯坦福吴恩达团队提出,属于集成模型的一种2019年提出的

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
NGBoost-shap方法回归任务,由斯坦福吴恩达团队提出,属于集成模型的一种2019年提出的

NGBoost-shap方法回归任务,由斯坦福吴恩达团队提出,属于集成模型的一种2019年提出的,算是比较新的方法了 自带数据集,可以直接运行,对模型采用shap进行分析,所有图所见即所得 python 代码

NGBoost这玩意儿最近在回归任务里挺火,作为吴恩达团队整出来的新活,它最骚的地方在于既能预测数值还能估计不确定性。咱们今天直接上手实操,用自带数据集快速搞个可复现的demo,顺带用SHAP把模型掰开了揉碎了看看。

先装个环境(别问,问就是pip大法好):

pip install ngboost shap

上代码直接开整!先加载内置的糖尿病数据集:

from ngboost import NGBRegressor from sklearn.datasets import load_diabetes from sklearn.model_selection import train_test_split X, y = load_diabetes(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) ngb = NGBRegressor(Dist=ngboost.distns.Normal, n_estimators=100) ngb.fit(X_train, y_train) # 预测时同时拿到预测值和置信区间 preds = ngb.pred_dist(X_test) print(f"均值预测示例:{preds.params['loc'][:3]}") print(f"标准差示例:{preds.params['scale'][:3]}")

这里用了正态分布作为基分布,n_estimators设到100能保证基础学习器足够多。预测结果直接返回分布参数,比普通回归只能输出个数值有意思多了。

接下来用SHAP扒开模型看细节:

import shap # 用TreeExplainer适配树模型结构 explainer = shap.TreeExplainer(ngb) shap_values = explainer.shap_values(X_test) # 特征重要性可视化 shap.summary_plot(shap_values, X_test, feature_names=load_diabetes().feature_names)

运行后会跳出两张神图:第一张是特征总体重要性,明显能看到s5(血清检测指标)和age对预测结果影响最大;第二张是特征作用方向图,每个点颜色代表特征值大小,能直观看到高年龄对应的预测值偏移方向。

想具体看单个预测案例?上force_plot:

# 选个有意思的样本观察 sample_idx = 15 shap.force_plot(explainer.expected_value, shap_values[sample_idx], X_test[sample_idx], feature_names=load_diabetes().feature_names)

这图看着就很有说服力——基线值在150左右,s5特征硬生生把预测结果拉低了20个点,bmi又给顶上去10个点。这种可视化比看表格里的系数值直观十个Level!

实测中发现NGBoost对参数挺敏感,把Dist换成LogNormal分布,预测区间立马变得右偏。SHAP分析时也会发现特征影响方向发生微妙变化,这说明模型结构的选择会直接影响可解释性结果。建议跑多个分布配置对比着看,特别是当业务场景对不确定性方向有要求时。

最后来个骚操作:把预测分布画出来看不确定性

import matplotlib.pyplot as plt plt.figure(figsize=(10,6)) plt.scatter(y_test, preds.params['loc'], alpha=0.5) plt.errorbar(y_test, preds.params['loc'], yerr=2*preds.params['scale'], fmt='o', alpha=0.3) plt.plot([y.min(), y.max()], [y.min(), y.max()], 'r--')

这个误差带可视化直接暴露了模型在极端值区域的预测乏力——当真实值超过250时,预测点明显偏离红色对角线,同时误差带急剧变宽。这种双重可视化把模型优缺点直接拍脸上,比单纯看R²得分带劲多了。

总结下来,NGBoost+SHAP的组合拳特别适合需要量化不确定性的场景(比如金融风控、医疗预测)。代码层面几乎零魔改就能出效果,但要注意分布假设对可解释性的影响。下次遇到产品经理说"我要个能解释的AI",直接甩这个方案过去就完事了。

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

Langchain-Chatchat与OA系统集成实现智能办公助手

Langchain-Chatchat与OA系统集成实现智能办公助手 在企业数字化转型的浪潮中,一个看似高效实则“笨重”的问题正日益凸显:员工每天被淹没在成百上千份制度文件、审批流程和会议纪要中,却依然找不到关键信息。某大型制造企业的HR曾坦言&#x…

作者头像 李华
网站建设 2026/7/31 10:15:20

Langchain-Chatchat高可用架构设计:保障系统稳定性

Langchain-Chatchat高可用架构设计:保障系统稳定性 在企业智能化转型的浪潮中,一个日益突出的问题摆在面前:如何让大模型真正“懂”组织内部的知识?通用AI助手虽然能对答如流,但面对“我们公司的年假政策是什么”这类…

作者头像 李华
网站建设 2026/8/1 18:24:14

Langchain-Chatchat实现多轮对话的关键技术点

Langchain-Chatchat实现多轮对话的关键技术点 在企业数字化转型不断深入的今天,员工对内部知识获取效率的要求越来越高。一个常见的场景是:新入职的员工反复向HR询问“年假怎么休”“差旅报销标准是什么”,而这些信息其实早已写在公司制度文档…

作者头像 李华
网站建设 2026/8/1 21:14:34

如何通过华为云国际站代理商OBS实现数据跨境传输与分发加速?

通过华为云国际站代理商 OBS 实现数据跨境传输与分发加速,核心是 “代理商协同配置加速链路 客户侧执行传输优化 全流程成本 / 合规 / 监控闭环”,依托全球骨干网、CDN/WSA/ 全球加速、跨区域复制与客户端工具,实现延迟降低 30%–50%、传输…

作者头像 李华
网站建设 2026/7/30 13:33:54

如何使用华为云国际站代理商的BRS进行数据安全保障?

使用华为云国际站代理商的 BRS 进行数据安全保障,核心是通过加密 权限管控 审计 演练 合规适配构建端到端防护,代理商以方案落地、运维执行与合规兜底为核心,结合华为云原生安全能力,实现跨境数据传输 / 存储加密、操作可追溯…

作者头像 李华
网站建设 2026/7/31 10:37:26

于无声处听惊雷:软件测试工程师的专业操守与价值坚守

在数字化浪潮席卷全球的今天,软件已深度渗透至社会运行的每个毛细血管。作为软件质量的守护者,测试工程师的角色早已超越简单的“找Bug”,转而肩负起保障企业声誉、用户信任乃至社会公共安全的重要使命。专业操守,便是在这无声战场…

作者头像 李华