SHAP分析交互作用的功能,如果你用的模型是xgboost

2024-05-14 07:20

本文主要是介绍SHAP分析交互作用的功能,如果你用的模型是xgboost,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SHAP分析交互作用的功能,如果你用的模型是xgboost

如果在SHAP分析中使用的是xgoost模型,就可以使用SHAP分析内置的交互作用分析,为分析变量间的相互提供了另外一个观察的视角。关于SHAP交互作用分析,一个参考资料,还是很值得看看。

  1. SHAP分析内置的交互作用可视化(汇总图)。是使用R语言shapviz包实现。前提是用的模型是xgboost,还要在获得shap对象的时候将参数“interactions=TRUE”。这个图对角线上是主效应,对角线两侧是交互作用,大概就是里面的点分得越开,交互作用越大。
    在这里插入图片描述
  2. 如果觉得不够直观,还可以获取交互作用的SHAP值来绘制热图。R语言shapviz包中使用sv_interaction(shap obj)函数来绘制上面的图,如果将其中的参数“kind=‘no’”,那么就会获得一个交互作用的数据表,而不是图。这个数据表直接导入pheatmap()函数来绘制热图,应该是比较容易看懂。
    在这里插入图片描述
  3. 这时候如果已经选出了感兴趣的变量,推荐你选择一个连续变量。这时候可以聚焦观察这两个变量之间的交互作用。这个功能并不需要xgboost模型。
    在这里插入图片描述
  4. 如果恰巧与这个变量有交互作用的变量是一个分类变量,你可以用分层分析来观察两者之间的交互作用,包括使用限制性立方样条回归来拟合分层的SHAP值。
    在这里插入图片描述
    也有一些专门分析交互作用的专门的R包,比如interactions,或许使用SHAP分析发现交互作用之后,就可以引入这些包来进行一些交互作用分析,而以上的功能为我们提供了更多的选择。实现代码保存在和鲸社区相关项目,一键复现。

这篇关于SHAP分析交互作用的功能,如果你用的模型是xgboost的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/988119

相关文章

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件