当前位置: 首页 > news >正文

机器学习的模型解释方法

模型解释

在机器学习飞速发展的今天,模型的预测准确率越来越高,但我们却常常面临一个尴尬的问题:模型为什么给出这个预测?特别是在医疗、金融、司法、自动驾驶等高风险领域,如果我们无法解释模型的决策,就很难获得用户的信任,也难以满足监管要求。

模型解释是指将复杂的机器学习模型决策过程变得人类可理解的技术。它主要回答两个层次的问题:

局部解释(Local Explanation):针对单个样本,模型为什么做出这个预测?每个特征分别贡献了多少?

全局解释(Global Explanation):从整体上看,模型依赖哪些特征?特征如何影响预测结果?

好的模型解释方法需要同时具备准确性、稳定性、一致性和可理解性。

目前主流的模型解释方法

方法名称作用范围核心思想优点缺点
SHAP全局 + 局部基于合作博弈论Shapley值,公平分配每个特征对预测的贡献理论基础坚实、满足一致性、统一全局与局部解释计算复杂度高(精确算法为指数级)
LIME局部在预测点附近生成扰动样本,用局部可解释模型(如线性模型)近似原模型速度快、直观、适合单个预测解释解释结果不稳定、选择邻域半径敏感
排列重要性全局打乱单个特征的值,观察模型预测误差的变化幅度简单快速、模型无关、易于实现无法区分正负影响、对相关特征敏感
部分依赖图 (PDP)全局固定其他特征,让目标特征在其取值范围内变化,绘制平均预测值曲线直观展示边际效应、可视化效果好最多只能同时展示两个特征、可能掩盖异质性(正负抵消)
ICE曲线局部 → 全局为每个样本单独绘制预测值随特征变化的曲线揭示个体异质性、弥补PDP的不足曲线过多时不易阅读、需配合PDP使用
全局代理模型全局用可解释模型(如线性回归、决策树)近似黑盒模型的预测灵活、可解释性强、适用于任何黑盒模型引入近似误差、代理模型本身可能不准确
对比解释 (Counterfactual)局部寻找最小的特征改动,使得模型预测结果改变帮助理解决策边界、可操作性强对特征相关性敏感、可能不存在可行解
基于梯度的方法 (Saliency Map)局部计算输入对输出的梯度,反映输入的微小变化对预测的影响适合深度学习模型(图像/文本)、计算高效只能解释局部敏感度、梯度饱和问题
集成梯度 (Integrated Gradients)局部沿基线到输入的直线路径积分梯度,满足公理解决梯度饱和、满足敏感性与实现不变性需要模型可微、基线选择影响结果
树模型原生重要性全局基于分裂次数、不纯度减少(如Gini重要性)或覆盖度计算极快、与树模型(RF/XGBoost)无缝集成仅适用于树模型、不同指标可能矛盾
内在可解释模型全局模型结构本身简单(如线性回归、逻辑回归、小深度决策树)天生可解释、无需事后分析表达能力有限、精度通常低于黑盒模型

这里以最常用的 SHAP 方法为例。

SHAP 起源

SHAP全称是 SHapley Additive exPlanation,属于模型事后解释的方法,可以对复杂机器学习模型进行解释。虽然来源于合作博弈论,但只是以该思想作为载体。在进行局部解释时,SHAP的核心是计算其中每个特征变量的Shapley Value。

Shapley:代表对每个样本中的每一个特征变量都计算出它的 Shapley Value。

Additive:代表对每一个样本而言,特征变量对应的 shapley value是可加的。

exPlanation:代表对单个样本的解释,即每个特征变量是如何影响模型的预测值。

示例

根据已知,记v(A)=100,v(B)=125,v(C)=50,v(A,B)=270,v(B,C)=350,v(A,C)=375,v(A,B,C)=500v(A) = 100,v(B) = 125,v(C) = 50,v(A,B) = 270,v(B,C) = 350,v(A,C) = 375,v(A,B,C) = 500v(A)=100v(B)=125v(C)=50v(A,B)=270v(B,C)=350v(A,C)=375v(A,B,C)=500

概率顺序A 的边际贡献B 的边际贡献C 的边际贡献
1/6A, B, Cv(A)=100v(A) = 100v(A)=100v(A,B)−v(A)=170v(A,B) - v(A)= 170v(A,B)v(A)=170v(A,B,C)−v(A,B)=230v(A,B,C) -v(A,B)= 230v(A,B,C)v(A,B)=230
1/6A, C, Bv(A)=100v(A) = 100v(A)=100v(A,B,C)−v(A,C)=125v(A,B,C) - v(A,C) = 125v(A,B,C)v(A,C)=125v(A,C)−v(A)=275v(A,C) -v(A)= 275v(A,C)v(A)=275
1/6B, A, Cv(A,B)−v(B)=145v(A,B) - v(B) = 145v(A,B)v(B)=145v(B)=125v(B) = 125v(B)=125v(A,B,C)−v(A,B)=230v(A,B,C) -v(A,B)= 230v(A,B,C)v(A,B)=230
1/6B, C, Av(A,B,C)−v(B,C)=150v(A,B,C) -v(B,C)= 150v(A,B,C)v(B,C)=150v(B)=125v(B) = 125v(B)=125v(B,C)−v(B)=225v(B,C) -v(B)= 225v(B,C)v(B)=225
1/6C, A, Bv(A,C)−v(C)=325v(A,C) -v(C)= 325v(A,C)v(C)=325v(A,B,C)−v(A,C)=125v(A,B,C) -v(A,C)= 125v(A,B,C)v(A,C)=125v(C)=50v(C) = 50v(C)=50
1/6C, B, Av(A,B,C)−v(B,C)=150v(A,B,C) -v(B,C)= 150v(A,B,C)v(B,C)=150v(B,C)−v(C)=300v(B,C) -v(C)= 300v(B,C)v(C)=300v(C)=50v(C) = 50v(C)=50
Shapley Value161.67161.67176.67
Ratio32.3332.3335.33

SHAP 计算公式

ϕi(f,x)=∑z′⊆x′∣z′∣!(M−∣z′∣−1)!M![fx(z′)−fx(z′∖i)] \phi_i(f, x) = \sum_{z' \subseteq x'} \frac{|z'|!(M - |z'| - 1)!}{M!} \left[ f_x(z') - f_x(z' \setminus i) \right]ϕi(f,x)=zxM!z!(Mz1)![fx(z)fx(zi)]

  • z′z'z表示当前已加入的特征联盟(哪些特征“在场”)。是一个与特征数一样长的0/10/10/1项量;
  • ∣z′∣|z'|z当前联盟大小。为111的个数;
  • MMM表示特征的个数;
  • iii表示要当前计算的特征;
  • fx(z′)f_x(z')fx(z)是加入iii之后模型在该联盟下的预测值;
  • fx(z′∖i)f_x(z' \setminus i)fx(zi)是加入iii之前模型在该联盟下的预测值;

公式本质是:该特征在所有可能的特征子集组合下的边际贡献的加权平均值!

该个体特征AAA的 shapely value 计算

联盟个数概率特征边际效应特征 shapley value
空集 {}0000!×2!/6=1×2/6=1/30! × 2! / 6 = 1×2/6 = 1/30!×2!/6=1×2/6=1/3v(A)−v()=100−0=100v({A}) − v({}) = 100 − 0 = 100v(A)v()=1000=100(1/3)×100≈33.33(1/3)×100 ≈ 33.33(1/3)×10033.33
{BBB}1111!×1!/6=1×1/6=1/61! × 1! / 6 = 1×1/6 = 1/61!×1!/6=1×1/6=1/6v(A,B)−v(B)=270−125=145v({A,B}) − v({B}) = 270 − 125 = 145v(A,B)v(B)=270125=145(1/6)×145≈24.17(1/6)×145 ≈ 24.17(1/6)×14524.17
{CCC}1111!×1!/6=1/61! × 1! / 6 = 1/61!×1!/6=1/6v(A,C)−v(C)=375−50=325v({A,C}) − v({C}) = 375 − 50 = 325v(A,C)v(C)=37550=325(1/6)×325≈54.17(1/6)×325 ≈ 54.17(1/6)×32554.17
{B,CB,CB,C}2222!×0!/6=2×1/6=1/32! × 0! / 6 = 2×1/6 = 1/32!×0!/6=2×1/6=1/3v(A,B,C)−v(B,C)=500−350=150v({A,B,C}) − v({B,C}) = 500 − 350 = 150v(A,B,C)v(B,C)=500350=150(1/3)×150=50.00(1/3)×150 = 50.00(1/3)×150=50.00

特征AAAShapleyShapleyShapleyvalue=33.33+24.17+54.17+50.00=161.67value = 33.33 + 24.17 + 54.17 + 50.00 = 161.67value=33.33+24.17+54.17+50.00=161.67

详细参考

https://shap.readthedocs.io/en/latest/

https://www.bilibili.com/video/BV16qAsevEvJ/?spm_id_from=333.1387.favlist.content.click&vd_source=a156500106bde05b0c01060829d50c66

https://www.bilibili.com/video/BV1DG4y1b7V5/?spm_id_from=333.337.search-card.all.click&vd_source=a156500106bde05b0c01060829d50c66

http://www.jsqmd.com/news/607532/

相关文章:

  • GoJieba在企业级应用中的最佳实践
  • 2025-2026年全球资产配置公司评测:五家口碑服务推荐评价知名 - 品牌推荐
  • STM32F103R基于AI生成的HAL库DMA串口应用用例
  • 探讨湖北做标准化流程维修维保的公司,哪家性价比高? - 工业推荐榜
  • 如何用大麦抢票助手轻松搞定热门演出票?智能抢票3大核心优势解析
  • 科研党福音:OpenClaw+Qwen3.5-9B实现论文阅读助手
  • 分析国内主流的软件供应链安全产品,AI软件供应链安全企业选哪家 - 工业推荐榜
  • OmenSuperHub:开源惠普游戏本性能控制工具全面解析
  • Licensecc技术实现深度解析:C++跨平台软件授权保护架构
  • RetinaFace镜像使用技巧:如何调整置信度阈值优化检测结果?
  • 媒体发布新武器:Infoseek融媒体平台使用指南
  • 可以解决外包带入风险的软件供应链安全管理工具选购要点有哪些 - mypinpai
  • FLUX.小红书极致真实V2从零开始:Ubuntu 22.04 + NVIDIA驱动535部署实录
  • 2025-2026年全球专户订制公司推荐:五大口碑服务评测评价领先 - 品牌推荐
  • 如何通过FanControl实现Windows系统风扇的智能精准控制?
  • 如何告别Android设备驱动烦恼?Universal ADB Driver的7大核心价值解析
  • 剖析2026年交互式应用安全检测IAST动态安全检测产品,哪个口碑好 - 工业设备
  • Windows 11终极清理优化:免费工具Win11Debloat完整使用指南
  • LeetCode 98. 验证二叉搜索树 详细技术解析(含多解法+避坑指南)
  • 美胸-年美-造相Z-Turbo保姆级入门指南:小白也能快速玩转AI绘画
  • URDF避坑指南:如何用SolidWorks导出模型并优化ROS仿真效果
  • 告别提取码烦恼:百度网盘提取码智能获取工具全解析
  • s2-pro实战案例:上传10秒参考音频复刻专属音色完整教程
  • Go Context 控制流的正确使用方式
  • 数字人视频制作新选择:HeyGem批量版快速上手与实战体验
  • OpenClaw定时任务实战:千问3.5-9B每日早报自动生成
  • 一次有意思的魔改:把 Claude Code 做成 Claude Yunying 之后,我看到了 AI Agent 的另一种形态
  • SpyGlass CDC实战:如何用sgdc约束文件解决跨时钟域报错(附常见错误排查)
  • 2026年江苏地区开源软件安全分析系统,支持多LLM智能体分析的品牌排名 - 工业品牌热点
  • Windows 11安装终极指南:一键绕过TPM限制的完整解决方案