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

【Survival Analysis】【机器学习】【3】 SHAP可解釋 AI

前言:

         SHAP(SHapley Additive explanations) 是一种基于博弈论的可解释工具。 现在很多高分的

论文里面都会带这种基于SHAP 分析的图,用于评估机器学习模型中特征对预测结果的贡献度.

         pip install -i https://pypi.tuna.tsinghua.edu.cn/simple shap


目录:

  1.     边际贡献(Marginal Contribution of member)
  2.     SHAP值计算(基于Shapley值)
  3.     机器学习SHAP应用
  4.     机器学习中SHAP 如何计算
  5.      SHAP 分类
  6.     Python 例子待补充

一   边际贡献(Marginal Contribution of member)

      已知某公司通过三种广告源:A(抖音)、B(微信)、C(广告传单))不同广告组合的收益如下:

投放情况(x)

收益f(x)

A

f(A) = 10(仅A投放时的收益)

B

f(B) = 30(仅B投放时的收益)

C

f(C) = 5(仅C投放时的收益)

A+B

f(A+B) = 50(A和B一起投放时的收益)

A+C

f(A+C) = 40(A和C一起投放时的收益)

B+C

f(B+C) = 35(B和C一起投放时的收益)

A+B+C

f(A+B+C) = 100(所有三个一起投放时的总收益)

 假设空集的收益 f(∅) = 0(即没有任何广告时收益为0),这是合作博弈论中的标准假设.

 1.1 边际贡献:

  指在合作博弈中,当一个成员(如i)加入一个现有联盟(如S)时,所带来的额外收益增加。

  假设:

         i:    成员

         s:  子集,但是不包含成员i

         N: 是所有成员的集合 本例子为:N={A,B,C}

              则边际贡献为

                   f(s∪{i}) −   f(s)

   

    

  • 1.2   意义

  •        边际贡献衡量了成员在特定情境下的增量价值。然而,它依赖于成员加入的顺序和现有联盟的构成。因此,单一情境下的边际贡献可能无法公平反映成员的整体贡献(尤其当存在协同效应时)

  • 1.3 我们计算每个广告源在加入“其他两个成员已组成的联盟”时的边际贡献

  • 边际贡献

    计算方法

    解释

    M_A

    f({A,B,C})−f({B,C})=100−35=65

    BC已经投放时,加入A带来65的额外收益

    M_B

    f({A,B,C})−f({A,C})=100−40=60

    AC已经投放时,加入B带来60的额外收益。

    M_C

    f({A,B,C})−f({A,B})=100−50=50

    AB已经投放时,加入C带来50的额外收益

     1.4  边际贡献问题

结果:

   这些值之和为 65+60+50=17565+60+50=175,但总收益仅为100。

   这表明 广告源之间存在正向协同效应(例如,A和B一起的收益50 > 单独收益之和10+30=40)。简单边际贡献依赖于加入顺序,且未考虑所有可能情境,因此不适合直接分配总收益.

解决方案:

             为了公平分配,需要使用平均边际贡献(即SHAP值/Shapley值),它考虑了所有可能的加入顺序。


二    SHAP值计算(基于Shapley值)

        SHAP值(SHapley Additive exPlanations):起源于合作博弈论中的Shapley值,用于公平分配总收益(或解释模型预测)。它计算每个成员在所有可能加入顺序下的平均边际贡献,确保分配公平(即满足效率性:SHAP值之和等于总收益).

     

 基于广告协同例子的计算

A(抖音)的SHAP值

 

   

B(微信)的SHAP值

    

C(广告传单)的SHAP值

  

        

  • SHAP值(公平贡献度)

    • A(抖音):ϕA​≈34.1667

    • B(微信):ϕB​≈41.6667(或 25066250​)

    • C(广告传单):ϕC​≈24.1667

  • 验证总和:ϕA+ϕB+ϕC==100,与总收益一致。

  • 解释

    • B(微信)的贡献最大(41.67),因为它单独和组合收益较高(f(B)=30, f(A+B)=50)。

    • A(抖音)次之(34.17),与B协同效应强  f(A+B)=50 > f(A)+f(B)=40

    • C(广告传单)贡献最小(24.17),单独收益低,但协同后仍有价值(例如,f(A,B,C)=100 > f(A,B)=50)

  • 边际贡献 vs SHAP值

  •      边际贡献是情境依赖的单一值,而SHAP值是平均化的公平分配。

  •  此例子中简单边际贡献(A:65, B:60, C:50)高估了贡献,而SHAP值(A:34.17, B:41.67, C:24.17)更合理地分配了总收益100。

  • 应用场景

  •     在广告分析中,SHAP值可帮助优化预算分配(例如,减少C的投入,增加B的投入)。在机器学习中,SHAP值用于解释特征重要性


三  SHAP 机器学习应用

       

      3.1  机器学习做SHAP 分析的原理

             以线性回归为例,Additive Explanation Models,输入特征X ,输出f(x),我们

通过shape值 v  ,以及shape计算方式 g(v) 可以得到  g(v)=f(x)

   

  • 针对不同模型类型采用不同计算方法:
    • 树模型:TreeSHAP算法(时间复杂度O(TLD^2))
    • 线性模型:基于权重系数直接计算
    • 深度模型:DeepSHAP方法
    • 通用模型:KernelSHAP(基于LIME框架

3.2   SHAP 在Python 的用法

1: SHAP 初始化

 

 2 单样本 SHAP 分析

多样本SHAP分析

多样本 SHAP bar 分析

    多样本shap Beeswarm 分析

 


四  SHAP 机器学习中计算方式

     我们首选有个训练好的模型,假设某个样本输入的特征为

    

agegenderBody mass index..
56F30....

    根据输入的特征我们得到y_1=f(x_r)

   我们把Gener这个特征设置为一个随机数 得到y_2=f(x_f)

   则gender等于F 的边际贡献为 y_1-y_2,根据边际贡献可以计算出SHAP值

通过上面可以看到,计算shap值过程中,加入有n个特征,每个特征可以有两种取值可能

真实值或者随机数,则一共有2^n个子集

根据模型的不同,shape 也会有不同的初始化方式如下


五 SHAP 分类

  

1. Kernel SHAP

  • 原理:基于经典的Shapley值计算,通过局部加权线性回归(LIME-like)近似Shapley值。

  • 特点

    • 模型无关:适用于任何机器学习模型(如SVM、随机森林、神经网络等)。

    • 计算成本高:需要大量采样,尤其在特征维度高时效率较低。

  • 适用场景:小型数据集或需要通用解释的场景。

2. Tree SHAP

  • 原理:专为树模型(决策树、随机森林、XGBoost、LightGBM等)优化的算法,利用树结构的递归计算加速。

  • 特点

    • 高效精确:计算复杂度从指数级降至多项式级(O(TLD2)O(TLD2),其中TT是树的数量,LL是最大叶子数,DD是深度)。

    • 支持交互效应:可计算特征间的交互作用(如shap_interaction_values)。

  • 适用场景:树模型的快速解释(工业界最常用)。

3. Deep SHAP

  • 原理:基于DeepLIFT的改进,用于深度神经网络(DNN)的近似Shapley值计算。

  • 特点

    • 高效传播:通过反向传播规则近似计算,避免暴力采样。

    • 依赖模型结构:需针对特定网络架构设计。

  • 适用场景:图像、文本等深度学习模型的解释。

4. Linear SHAP

  • 原理:针对线性模型的简化计算,假设特征独立性。

  • 特点

    • 解析解:直接通过模型系数计算Shapley值,无需采样。

    • 速度快:计算复杂度极低。

  • 适用场景:线性回归、逻辑回归等线性模型。

5. Sampling SHAP

  • 原理:通过蒙特卡洛采样近似Shapley值,减少计算量。

  • 特点

    • 灵活性高:适用于任何模型,比Kernel SHAP更轻量。

    • 精度依赖采样数:需权衡计算时间和精度。

  • 适用场景:中大型数据集或需要平衡效率与精度的场景。

6. Group SHAP

  • 原理:将多个特征视为一个组(如one-hot编码的类别变量),计算组的联合贡献。

  • 特点

    • 减少维度灾难:避免高维特征下的计算瓶颈。

    • 更直观解释:适合具有逻辑分组的特征。

  • 适用场景:分类变量或特征分组明显的场景。

7. Approximate SHAP

  • 变体:包括基于梯度的方法(如GradientSHAP)或其他近似算法,针对特定模型优化。

  • 特点:在速度和精度之间折中,可能牺牲理论严谨性。

选择建议

  • 树模型:优先用Tree SHAP(最快且精确)。

  • 深度学习:尝试Deep SHAP或Kernel SHAP。

  • 黑盒模型:Kernel SHAP或Sampling SHAP。

  • 线性模型:Linear SHAP。







参考:

 1  SHAP values for beginners | What they mean and their applications【】https://www.youtube.com/watch?v=MQ6fFDwjuco&list=PLqDyyww9y-1SJgMw92x90qPYpHgahDLIK

2   https://www.youtube.com/watch?v=L8_sVRhBDLU&list=PLqDyyww9y-1SJgMw92x90qPYpHgahDLIK&index=2SHAP with Python (Code and Explanations)
2   https://www.youtube.com/watch?v=L8_sVRhBDLU&list=PLqDyyww9y-1SJgMw92x90qPYpHgahDLIK&index=2

相关文章:

【Survival Analysis】【机器学习】【3】 SHAP可解釋 AI

前言: SHAP(SHapley Additive explanations) 是一种基于博弈论的可解释工具。 现在很多高分的 论文里面都会带这种基于SHAP 分析的图,用于评估机器学习模型中特征对预测结果的贡献度. pip install -i https://pypi.tuna.tsinghua.edu.cn/sim…...

ModuleNotFoundError No module named ‘torch_geometric‘未找到

ModuleNotFoundError: No module named torch_geometric’未找到 试了很多方法,都没成功,安装torch对应版本的torch_geometric都不行, 后来发现是pip被设置了环境变量,所有pip文件都给安装在了一个文件夹了 排查建议 1. 检查 p…...

iOS 门店营收表格功能的实现

iOS 门店营收表格功能实现方案 核心功能需求 数据展示:表格形式展示门店/日期维度的营收数据排序功能:支持按营收金额、增长率等排序筛选功能:按日期范围/门店/区域筛选交互操作:点击查看详情、数据刷新数据可视化:关…...

链表题解——环形链表【LeetCode】

141. 环形链表 方法一 核心思想: 使用一个集合 seen 来记录已经访问过的节点。遍历链表,如果当前节点已经存在于集合中,说明链表存在环;否则,将当前节点添加到集合中,继续遍历。如果遍历结束(h…...

Cell-o1:强化学习训练LLM解决单细胞推理问题

细胞类型注释是分析scRNA-seq数据异质性的关键任务。尽管最近的基础模型实现了这一过程的自动化,但它们通常独立注释细胞,未考虑批次水平的细胞背景或提供解释性推理。相比之下,人类专家常基于领域知识为不同细胞簇注释不同的细胞类型。为模拟…...

求解插值多项式及其余项表达式

例 求满足 P ( x j ) f ( x j ) P(x_j) f(x_j) P(xj​)f(xj​) ( j 0 , 1 , 2 j0,1,2 j0,1,2) 及 P ′ ( x 1 ) f ′ ( x 1 ) P(x_1) f(x_1) P′(x1​)f′(x1​) 的插值多项式及其余项表达式。 解: 由给定条件,可确定次数不超过3的插值多项式。…...

vue3: bingmap using typescript

项目结构&#xff1a; <template><div class"bing-map-market"><!-- 加载遮罩层 --><div class"loading-overlay" v-show"isLoading || errorMessage"><div class"spinner-container"><div class&qu…...

vue3前端实现导出Excel功能

前端实现导出功能可以使用一些插件 我使用的是xlsx库 1.首先我们需要在vue3的项目中安装xlsx库。可以使用npm 或者 pnpm来进行安装 npm install xlsx或者 pnpm install xlsx2.在vue组件中引入xlsx库 import * as XLSX from xlsx;3.定义导出实例方法 const exportExcel () …...

超大规模芯片验证:基于AMD VP1902的S8-100原型验证系统实测性能翻倍

引言&#xff1a; 随着AI、HPC及超大规模芯片设计需求呈指数级增长原型验证平台已成为芯片设计流程中验证复杂架构、缩短迭代周期的核心工具。然而&#xff0c;传统原型验证系统受限于单芯片容量&#xff08;通常<5000万门&#xff09;、多芯片分割效率及系统级联能力&#…...

【工作记录】接口功能测试总结

如何对1个接口进行接口测试 一、单接口功能测试 1、接口文档信息 理解接口文档的内容&#xff1a; 请求URL: https://[ip]:[port]/xxxserviceValidation 请求方法: POST 请求参数: serviceCode(必填), servicePsw(必填) 响应参数: status, token 2、编写测试用例 2.1 正…...

Dubbo Logback 远程调用携带traceid

背景 A项目有调用B项目的服务&#xff0c;A项目使用 logback 且有 MDC 方式做 traceid&#xff0c;调用B项目的时候&#xff0c;traceid 没传递过期&#xff0c;导致有时候不好排查问题和链路追踪 准备工作 因为使用的是 alibaba 的 dubbo 所以需要加入单独的包 <depend…...

【element-ui】el-autocomplete实现 无数据匹配

文章目录 方法一&#xff1a;使用 default 插槽方法二&#xff1a;使用 empty-text 属性&#xff08;适用于列表类型&#xff09;总结 在使用 Element UI 的 el-autocomplete 组件时&#xff0c;如果你希望在没有任何数据匹配的情况下显示特定的内容&#xff0c;你可以通过自定…...

NLP学习路线图(二十):FastText

在自然语言处理(NLP)领域,词向量(Word Embedding)是基石般的存在。它将离散的符号——词语——转化为连续的、富含语义信息的向量表示,使得计算机能够“理解”语言。而在众多词向量模型中,FastText 凭借其独特的设计理念和卓越性能,尤其是在处理形态丰富的语言和罕见词…...

力扣面试150题--除法求值

Day 62 题目描述 做法 此题本质是一个图论问题&#xff0c;对于两个字母相除是否存在值&#xff0c;其实就是判断&#xff0c;从一个字母能否通过其他字母到达&#xff0c;做法如下&#xff1a; 遍历所有等式&#xff0c;为每个变量分配唯一的整数索引。初始化一个二维数组 …...

SQL进阶之旅 Day 20:锁与并发控制技巧

【JDK21深度解密 Day 20】锁与并发控制技巧 文章简述 在高并发的数据库环境中&#xff0c;锁与并发控制是保障数据一致性和系统稳定性的核心机制。本文作为“SQL进阶之旅”系列的第20天&#xff0c;深入探讨SQL中的锁机制、事务隔离级别以及并发控制策略。文章从理论基础入手…...

美业破局:AI智能体如何用数据重塑战略决策(5/6)

摘要&#xff1a;文章深入剖析美业现状与挑战&#xff0c;指出其市场规模庞大但竞争激烈&#xff0c;面临获客难、成本高、服务标准化缺失等问题。随后阐述 AI 智能体与数据驱动决策的概念&#xff0c;强调其在美业管理中的重要性。接着详细说明 AI 智能体在美业数据收集、整理…...

生成模型+两种机器学习范式

生成模型&#xff1a;从数据分布到样本创造 生成模型&#xff08;Generative Model&#xff09; 是机器学习中一类能够学习数据整体概率分布&#xff0c;并生成新样本的模型。其核心目标是建模输入数据 x 和标签 y 的联合概率分布 P(x,y)&#xff0c;即回答 “数据是如何产生的…...

【学习笔记】Python金融基础

Python金融入门 1. 加载数据与可视化1.1. 加载数据1.2. 折线图1.3. 重采样1.4. K线图 / 蜡烛图1.5. 挑战1 2. 计算2.1. 收益 / 回报2.2. 绘制收益图2.3. 累积收益2.4. 波动率2.5. 挑战2 3. 滚动窗口3.1. 创建移动平均线3.2. 绘制移动平均线3.3 Challenge 4. 技术分析4.1. OBV4.…...

在Linux查看电脑的GPU型号

VGA 是指 Video Graphics Array&#xff0c;这是 IBM 于 1987 年推出的一种视频显示标准。 lspci | grep vga &#x1f4cc; lspci | grep -i vga 的含义 lspci&#xff1a;列出所有连接到 PCI 总线的设备。 grep -i vga&#xff1a;过滤输出&#xff0c;仅显示包含“VGA”字…...

A Execllent Software Project Review and Solutions

The Phoenix Projec: how do we produce software? how many steps? how many people? how much money? you will get it. i am a pretty judge of people…a prank...

windows命令行面板升级Git版本

Date: 2025-06-05 11:41:56 author: lijianzhan Git 是一个 ‌分布式版本控制系统‌ (DVCS)&#xff0c;由 Linux 之父 Linus Torvalds 于 2005 年开发&#xff0c;用于管理 Linux 内核开发。它彻底改变了代码协作和版本管理的方式&#xff0c;现已成为软件开发的事实标准工具&…...

Langgraph实战--自定义embeding

概述 在Langgraph中我想使用第三方的embeding接口来实现文本的embeding。但目前langchain只提供了两个类&#xff0c;一个是AzureOpenAIEmbeddings&#xff0c;一个是&#xff1a;OpenAIEmbeddings。通过ChatOpenAI无法使用第三方的接口&#xff0c;例如&#xff1a;硅基流平台…...

大故障,阿里云核心域名疑似被劫持

2025年6月5日凌晨&#xff0c;阿里云多个服务突发异常&#xff0c;罪魁祸首居然是它自家的“核心域名”——aliyuncs.com。包括对象存储 OSS、内容分发 CDN、镜像仓库 ACR、云解析 DNS 等服务在内&#xff0c;全部受到波及&#xff0c;用户业务连夜“塌房”。 更让人惊讶的是&…...

什么是「镜像」?(Docker Image)

&#x1f9ca; 什么是「镜像」&#xff1f;&#xff08;Docker Image&#xff09; &#x1f4a1; 人话解释&#xff1a; Docker 镜像就像是一个装好程序的“快照包”&#xff0c;里面包含了程序本体、依赖库、运行环境&#xff0c;甚至是系统文件。 你可以把镜像理解为&…...

SQLMesh实战:用虚拟数据环境和自动化测试重新定义数据工程

在数据工程领域&#xff0c;软件工程实践&#xff08;如版本控制、测试、CI/CD&#xff09;的引入已成为趋势。尽管像 dbt 这样的工具已经推动了数据建模的标准化&#xff0c;但在测试自动化、工作流管理等方面仍存在不足。 SQLMesh 应运而生&#xff0c;旨在填补这些空白&…...

服务器健康摩尔斯电码:深度解读S0-S5状态指示灯

当服务器机柜中闪烁起神秘的琥珀色灯光&#xff0c;运维人员的神经瞬间绷紧——这些看似简单的Sx指示灯&#xff0c;实则是服务器用硬件语言发出的求救信号。掌握这套"摩尔斯电码"&#xff0c;等于拥有了预判故障的透视眼。 一、状态指示灯&#xff1a;服务器的生命体…...

设计模式基础概念(行为模式):模板方法模式 (Template Method)

概述 模板方法模式是一种行为设计模式&#xff0c; 它在超类中定义了一个算法的框架&#xff0c; 允许子类在不修改结构的情况下重写算法的特定步骤。 是基于继承的代码复用的基本技术&#xff0c;模板方法模式的类结构图中&#xff0c;只有继承关系。 需要开发抽象类和具体子…...

传统业务对接AI-AI编程框架-Rasa的业务应用实战(番外篇2)-- Rasa 训练数据文件的清理

经过我的【传统业务对接AI-AI编程框架-Rasa的业务应用实战】系列 1-6 的表述 已经实现了最初的目标&#xff1a;将传统平台业务&#xff08;如发票开具、审核、计税、回款等&#xff09;与智能交互结合&#xff0c;通过用户输入提示词或语音&#xff0c;识别用户意图和实体信…...

LVDS的几个关键电压概念

LVDS的几个关键电压概念 1.LVDS的直流偏置 直流偏置指的是信号的电压围绕的基准电压&#xff0c;信号的中心电压。在LVDS中&#xff0c;信号是差分的&#xff0c; 两根线之间的电压差表示数据&#xff0c;很多时候两根线的电压不是在0v开始变化的&#xff0c;而是在某个 固定的…...

2023年ASOC SCI2区TOP,随机跟随蚁群优化算法RFACO,深度解析+性能实测

目录 1.摘要2.连续蚁群优化算法ACOR3.随机跟随策略4.结果展示5.参考文献6.代码获取7.算法辅导应用定制读者交流 1.摘要 连续蚁群优化是一种基于群体的启发式搜索算法&#xff08;ACOR&#xff09;&#xff0c;其灵感来源于蚁群的路径寻找行为&#xff0c;具有结构简单、控制参…...