SHAP值是个什么值?
SHAP 值是个什么值?
起初,我们知道SHAP值代表了变量对于结局变量的贡献程度,然而,在做了一些SHAP分析之后,感觉有一些SHAP值还是有一些难以理解的地方,比如,为什么有负值?SHAP值为0 时曲线上点所代表的含义是什么?
1. SHAP值是个差值
The Shapley value can be misinterpreted. The Shapley value of a feature value is not the difference of the predicted value after removing the feature from the model training. The interpretation of the Shapley value is: Given the current set of feature values, the contribution of a feature value to the difference between the actual prediction and the mean prediction is the estimated Shapley value.[1]
翻译:某特征的SHAP值不是移除该特征(前)后预测值的差,而是 在目前所有特征值的设定下,某特征值对于实际预测值和平均与预测值的差的贡献。
[1]https://christophm.github.io/interpretable-ml-book/shapley.html
对这句话的理解要分回归和分类两种情况,计算SHAP值的时候会有一个基础值,就是平均预测值。
- 对于回归模型来说,SHAP值是预测值和平均预测值之间的差值。如果说计算SHAP值的结局变量是连续性变量,比如房价,那么SHAP值尺度和单位和房价是相同的。SHAP值为0的时候,该特征值不能对预测值产生影响,SHAP值大于0 ,代表预测值高于平均预测值的程度,SHAP值小于0,代表预测值低于平均预测值的程度。
- 对于分类模型,SHAP值反映的是概率的变化。在R语言的shapviz包中,默认的不是概率差值,而是对数几率(log odd,也称logit),这就是为什么SHAP值看着不像概率,因为作者认为这个函数更能反映概率的变化,但是提供了转换的方法。这时候SHAP为0, 代表事件发生的概率是50%V.S.50%,SHAP值大于0,可以解释为发生某结局的概率增加,SHAP小于0,代表发生相对结局的概率增加。
几率,更准确的说,成功的几率,被定义为成功的概率/失败的概率。明天晴天的概率为80%,非晴天的概率为20%,则几率为: 0.8/0.2=4 。Odds的(自然)对数就是 Log Odds, 也称为Logit。若成功的概率为50%,失败的概率也是50%, Odds等于1,对数几率(Log odds)为0。[2]
[2] https://zhuanlan.zhihu.com/p/445485992
2. SHAP值的特点
The Shapley value is the only attribution method that satisfies the properties Efficiency, Symmetry, Dummy and Additivity, which together can be considered a definition of a fair payout.[1]
翻译:有效、一致、哑性和可加四个特性
[1]https://christophm.github.io/interpretable-ml-book/shapley.html
- 有效,SHAP值是可以反映特征贡献的;
- 一致,是两个不同变量之间的贡献是可比的;
- 哑性,指的是如果一个特征的SHAP值为0,代表其不会改变预测值;所以,SHAP值的正负代表变化的方向不同。
- 可加,指的是变量间的贡献程度是可以相加的。
3. SHAP值注意事项
- 特征之间的共线性会影响SHAP值的计算,要求是相互独立的。
以上所查询的信息基本上能解答自己在理解SHAP值的一些困惑,有不准确的地方还请大家指正。
相关文章:
SHAP值是个什么值?
SHAP 值是个什么值? 起初,我们知道SHAP值代表了变量对于结局变量的贡献程度,然而,在做了一些SHAP分析之后,感觉有一些SHAP值还是有一些难以理解的地方,比如,为什么有负值?SHAP值为0…...
Django接口卡死一直没有返回响应
当Django接口出现卡死且没有返回响应时,可能是由于多种原因导致的。以下是一些排查和解决问题的步骤: 查看日志: 首先检查Django的日志,看看是否有任何错误或异常被记录。这可以帮助你确定问题的根源。 检查数据库连接࿱…...
7-139 有趣的括号
括号()的组合千奇百怪,Drizzle 想知道各种组合的括号可以是否合法 合法要求:每个同类型的左括号必须有与之对应的同类的右括号以正确的顺序闭合 要求: 输入:输入一个括号字符串 输出:输出是否合法,是则True,否则False 示例: 输入: (){}[]输出: True范围: 对于 1…...
解决qt5.12.12编译源码没有libqxcb的问题
最近要研究一下qt源码,因为设计到要修改源码,所以需要编译源码并替换修改的库文件运行验证。 我这里使用的是qt5.12.12版本,去官网上下载对应版本的安装包,安装时勾选上源码即可。 后面编译完发现,plugins/platforms/目录下没有生成库文件libqxcb.so,造成了一点麻烦。 设置 e…...
在kubernetes中配置Ingress
目录 1. 安装Nginx Ingress Controller2. 准备TLS证书3. 编写Ingress资源定义4. 应用Ingress配置5. 验证配置 1. 安装Nginx Ingress Controller 首先,确保你的Kubernetes集群已经准备好。你可以使用Helm或者直接通过yaml文件来安装Nginx Ingress Controller。这里给…...
HarmonyOS ArkTS 实现类似Android中RadioButton得效果
在Android中如实现下图可以用radioGroup和RadioButton实现,但在ArkTs中radio不能实现自定义样式,所以用Tabs来实现这种效果,效果图如下: 一、效果图 二、实现横向布局的三个TabContent,代码如下 State currentIndex: n…...
AWS简介
AWS AWS,全称为Amazon Web Services,是亚马逊公司旗下的云计算服务平台,自2006年起向全球用户提供广泛而深入的云计算服务。AWS是全球最全面、应用最广泛的云平台之一,它从全球的数据中心提供超过200项功能齐全的服务,…...
STM32的FLASH学习笔记
不同型号的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字节,最大的则达到了1024K 字节。大容量产品的闪存模块组织如图所示: STM32 的闪存模块由:主存储器、信息块和闪存存储器接口寄存器等 3 部分组成。 ①主…...
人工智能-深度学习-PyTorch数据读取实战【含详细源代码+数据集+图示分析】
(以RMB人民币二分类为例) 介绍 在深度学习任务中,数据读取是至关重要的一环。它影响着模型的训练速度和训练效果。本文将以PyTorch框架为例,介绍如何读取RMB人民币二分类数据集,并进行详细的代码解析和图示分析。 原理详解 PyTorch提供了多种数据读取方法,包括: 手动…...
Qt常量字符串中文乱码QTextCodec转换无效
windows中文系统,local编码是GBK18030 常量字符串包含中文,通过QString::fromLocal8bit和QTextCodec::codecForName("GB18030")->toUnicode均不奏效 原因:源码编码为UTF-8,但VS编译器(MSVC)…...
(五)Spring教程——Spring IoC容器(上)
在Spring框架中,Bean的实例化和组装都是IoC容器配置元数据完成的。Spring框架提供的容器主要是基于BeanFactory和ApplicationContext两个接口,一种是实现BeanFactory接口的简单容器,另一种是实现ApplicationContext接口的高级容器。 BeanFact…...
TiDB学习1:TiDB体系架构概览
目录 1. TiDB体系结构 2. TiDBsever 3. TiKV 4. PD(Placement Driver) 5. TiFlash 1. TiDB体系结构 水平扩容或者缩容金融级高可用实时 HTAP云原生的分布式数据库兼容MySQ 5.7 协议 2. TiDBsever 处理客户端的连接SQL语句的解析和编译关系型数据与 kv 的转化(insert语句)S…...
Prometheus 保留或删除标签 labeldrop、labelkeep
保留或删除标签 有的时候我们也有保留或删除一些标签的需求,比如有的目标在时间序列上提供了许多额外的标签,这些标签用途不大,这个时候我们就可以使用 labelkeep 和 labeldrop 这两个操作,使用这两个操作可以有选择地保留或删除一…...
uniapp中实现保存图片,复制信息功能函数的封装
1.首先在until文件中创建common.js文件(根据你自己的实际情况定,重点在下边的函数封装中) // 复制信息 export function copyData (data) {uni.setClipboardData({data: data,success: function () {uni.showToast({title: 复制成功})}}); }/…...
C#【进阶】委托和事件
委托和事件 文章目录 1、委托1、委托概念2、基本语法3、定义自定义委托4、使用自定义委托5、委托变量可以存储多个函数6、系统定义好的委托思考 怪物死亡数据更新 2、事件1、事件概念2、事件的使用3、为什么有事件思考 热水器 3、匿名函数1、匿名函数概念2、基本语法3、使用4、…...
【class9】人工智能初步(处理单张图片)
Class9的任务:处理单张图像 为了更高效地学习,我们将“处理单张图像”拆分成以下几步完成: 1. 读取图像文件 2. 调用通用物体识别 3. 提取图像分类信息 4. 对应分类文件夹还未创建时,创建文件夹 5. 移动图像到对应文件夹 0.获取…...
cgicc开发 (结合jsoncpp)
#include <iostream> #include <fstream> //读写文件 c标准库 #include <string> //字符串类 c标准库 #include <sstream> //字符串流 c标准库 #include <assert.h> #include "json/json.h" //jsoncpp的头文件#include <cgicc/CgiD…...
HTML常用标签及属性
一、简单标签 标签作用div 自带换行,块级显示span 语义化标签,无任何修饰效果br 换行,单标签hr 水平分割线,单标签h1 ~ h6 标题标签,有加粗效果,h1最明显,往后依次减弱,独占一行&am…...
【PB案例学习笔记】-03用户名密码校验
写在前面 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.git 需要源代码的小伙伴们可以自行…...
设计模式六大原则之 接口分离原则
文章目录 概念比较代码示例优势 小结 概念 要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。 比较 概念有了,再来看看比较下吧,和单一职责比较比较。 接口隔离原则和单一职责都是为了提高类的…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...
车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...
