特征重要性计算方法及神经网络的特征重要性

2023-11-03

这是我第63篇文章。这篇文章主要简单讲一些常用特征重要性计算方法及神经网络的特征重要性计算方法。

1 几种常用的特征重要性计算方法

1.1 树模型特征重要性

像xgboost、lightgbm等树模型都有自己计算特征重要性的方法,其特征重要性与特征使用次数和使用特征时带来的增益有关系。增益可以理解为对Loss带来的提升,或与之相类似的指标。基本上特征被用来分裂的次数越多,分裂后带来的增益越大该特征也就越重要。具体特征重要细节大家可以自行网上搜索,或者看这篇文章:
https://zhuanlan.zhihu.com/p/64759172

1.2 SHAP

SHAP一种来自于博弈论的方法,适合黑箱和非黑箱模型计算特征重要性。对于一些非线性的模型来说,特征与特征之间往往会相互作用,所以评价单个特征的重要性时需要要结合其他特征进行判断。而SHAP就是这样一种方法,其会计算特征的边际效应。比如ABCD四个特征,计算A特征的特征重要性时,它会计算AB、AC、AD、ABC、ABD和ABCD等特征组合的预测值(未在特征组合里的特征会被填充均值或进行其他操作);然后再计算不包含A特征的不同组合预测值,即会计算B、C、D、BC、BD和BCD等组合的预测值;最后整合多个边际效应来确定A特征的重要性,即整合val(AB)- val(B)、val(AC)- val©、val(AD)- val(D)、val(ABC)- val(BC)、val(ABD)- val(BD)和val(ABCD)- val(BCD)等边际提升为A特征的重要性。

但SHAP有个缺点,其计算复杂度极高,其计算复杂度是关于特征数量的指数阶复杂度,即使简化版本的SHAP也有极高的计算复杂度。有关SHAP的理论和实践文章如下。
https://zhuanlan.zhihu.com/p/85791430
https://zhuanlan.zhihu.com/p/103370775

1.3 Permutation

Permutation计算特征重要性较为简单,即打乱某一特征后,观察指标的变化情况,指标变化得越大表示该特征越重要。更详细的介绍可以看下述文章。
https://zhuanlan.zhihu.com/p/460783657

1.4 Boruta

Boruta的核心思路就是将特征矩阵进行shuffle,接着将shuffle后的特征(shadow features)与原特征(real features)拼接构成新的特征矩阵,然后判断打乱后特征重要性和原特征重要性的差距,如果这个差距越大表示该特征越重要。通常来说Boruta计算特征重要性会用到树模型。Boruta更详细介绍可见看下述文章。
https://www.zhihu.com/question/37318254

2 神经网络的特征重要性计算

神经网络的特征重要性主要以下几种方法。第一种是基于SHAP的方法,但该方法复杂度非常高,不推荐。第二种是基于permutation的方法,该方法相对简单,且效果还不错。第三种方法是基于蒸馏学习的方法,即训练一个线性回归模型拟和神经网络预测出来的预测值,最后通过结合特征的标准差和线性回归模型的权重来评定特征重要性。第四种就是基于机器学习可解释的方法,其大致原理就是求输入层的梯度,根据输入层梯度和特征值大小来计算特征的重要程度。

下面简单介绍基于permutation的特征重要性计算。Kaggle上有一个简单的计算例子。
https://www.kaggle.com/code/cdeotte/lstm-feature-importance/notebook

算法的核心思路就是先训练一个神经网络;计算第i个特征重要性时,打乱第i个特征;然后计算打乱后的指标变化。这个指标我建议选取与原预测值的Loss,原预测值为不打乱特征时的预测值,非真实的label。通过比较这个指标大小来判断特征的重要程度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

特征重要性计算方法及神经网络的特征重要性 的相关文章

  • USB通讯设置

    PMAC的USB通讯设置方法 日期 2015 06 08 作者 Z K 修订信息 2015 08 13修改1 1 PMAC示意图 2 PMAC与拓展板及接口板的连接 最下层是PMAC卡 上面连接ACC 1P 4扩展板 这个板子扩展四个轴 输
  • ES聚合分析

    前言 01 ES聚合类型 02 aggregations的语法结构 在学习之前 先掌握aggregations的语法结构 注意aggregations关键字可使用aggs代替 一 聚合起步 为了更加深刻的理解DSL聚合语法 这里是一个完整的
  • VS C++ 线程篇之一创建线程

    创建线程 创建线程方法一 HANDLE WINAPI CreateThread LPSECURITY ATTRIBUTES lpThreadAttributes 线程安全属性 SIZE T dwStackSize 线程堆栈大小 LPTHRE

随机推荐

  • QT界面GUI设计之Lable图片及文字显示

    QT界面GUI设计之Lable图片及文字显示 今天主要写一下Qt界面设计的Label相关用法 因为没有系统的学习 所以今天发现以前错了好多 今天记录一下 Label的相关用法 首先是搭建一个Label框 这个简单 在设计师里直接拖进去就可以
  • Ubuntn搭建Git +Repo代码管理服务器

    准备 三台电脑A 192 168 1 1 B 192 168 1 2 C 192 168 1 3 其中A作服务器 B作为服务器管理员 C就作为客户端 实际操作中注意替换ip等相关信息 搭建Git服务器 A 参考https blog csdn
  • 计算机老丢失运行库,计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll的修复方案

    在我们打开某软件 或者安装某个游戏的时候 经常会遇到这个问题 无法启动此程序 因为计算机中丢失api ms win crt runtime l1 1 0 dll 尝试重新安装该程序以解决此问题 部分用户重新安装此程序之后 还是会提示 计算机
  • 2023年如何选购一部4000元价位的笔记本电脑(附跳坑说明)

    2023年如何选购一部4000元价位的笔记本电脑 附带坑的说明 本文是一个快速指南 不包含选购中涉及的所有知识点 尤其是大量的具体硬件参数 内容主要关注在如何快速抓住自己真正的需求 快速筛选掉不匹配的型号 从而做出适合的选择 背景条件限定
  • strerror函数

    strerror函数 在linux编程下 经常看到很多的函数调用的返回值都会有一句话 错误代码存放在errno中 比如 open write creat 函数就会把错误原因放入errno中 最开始我也是很纳闷的 这个是什么啊 具体怎么看这个
  • Lightroom Classic 安装教程 2023最新版本

    Lightroom Classic是一个用于处理和编辑数字照片的软件 由Adobe开发和发布 它包括图片管理 RAW图像处理 编辑和输出功能 并提供大量的调整工具和预设 让用户可以轻松地对照片进行色彩校正 曝光调整 修剪和旋转 去除瑕疵和噪
  • 创建一个没有文件名的任意后缀的文件

    今天在实习的时候用WebStorm配置Eslint的时候遇到这个问题 就是需要一个 eslintrc的文件 但是我直接新建一个文档改后缀名不能使用 于是就想到了老师上课的时候让我们自己新建一个 gitignore包 办法如下 很小白的操作
  • idea git远程修改大小写字母,本地未修改,git pull faild warning redirecting to

    当他人远程修改了git分支的某字母 大小写修改 本地拉取失败或出现两个分支 只是某字母大小写不同 时 可以打开该项目 找到 git文件夹 如果没有则勾选隐藏的项目 git refs remotes origin 找到对应分支 进入文件修改名
  • QT QTableWidget 遍历导出时的一个空指针问题

    文章目录 如何遍历导出QTableWidget 空指针导致的程序崩溃 原因分析 解决方法 如何遍历导出QTableWidget 正常情况下在QT开发时 我们可以使用以下代码导出QTableWidget中的数据到一个文本文件 tbl gnss
  • 数学建模模型大全_数学建模——预测模型

    拟合 拟合是最基本的预测方法 matlab中提供了polyfit fit函数 用法示例 x p 注 拟合阶数过高意义不大 易出现过拟合现象 一般 3阶 MATLAB中还提供了 拟合工具箱 在命令行窗口输入 cftool 即可调用 时间序列
  • 【C语言初阶】 选择结构(分支语句)

    博客主页 小王又困了 系列专栏 C语言 人之为学 不日近则日退 感谢大家点赞 收藏 评论 目录 1 选择结构和条件判断 2 用if语句实现选择结构 2 1在C语言中选择结构主要是用if语句实现的 为了让大家进一步了解if语句的应用 我们举个
  • JSR303校验

    1 什么是JSR303校验 JSR是Java Specification Requests的缩写 意思是Java 规范提案 是指向JCP Java Community Process 提出新增一个标准化技术规范的正式请求 任何人都可以提交J
  • CTFShow web入门刷题记录-命令执行

    CTFShow web入门刷题记录 命令执行 web29 考点 preg match对于 flag 的字符的过滤 使用f 代替flag完成绕过 匹配任何字符串 文本 包括空字符串 代表任意字符 0个或多个 ls file 匹配任何一个字符
  • 西瓜书--第五章.神经网络

    个性签名 整个建筑最重要的是地基 地基不稳 地动山摇 而学技术更要扎稳基础 关注我 带你稳扎每一板块邻域的基础 博客主页 七归的博客 创作不易 走过路过别忘了三连击了哟 关注作者 不仅幸运爆棚 未来更可期 Triple attack 三连击
  • Medical Image Segmentation Review:The Success of U-Net

    目录 医学图像分割综述 UNet的成功 1 摘要与介绍 2 分类 2 1 2D Unet 2 2 3D UNet 3 UNet扩展 3 1对于跳跃连接的增强与改进 3 1 1 增加跳跃连接数量 3 1 2 对跳跃连接过程中的特征进行处理 3
  • React笔记之组件-复杂state的使用(4)

    前置简介 上一节 https juejin im post 6867454175781847047 我们简单说了state的使用 本节说明一下复杂的state使用方式 如果state里不止有 n 怎么办 类组件中 state 中有多个值 d
  • 翰高数据库安装连接

    1 背景 最近公司在做一个军用机场跑道异物检测设备 但是由于各国之间的关系紧张 军放要求我们软件做一个国产数据库的适配 经查阅才知道这个翰高数据库用的内核为postgresql 然后再这个基础上做了一定修改与优化 废话不多说 安排 2 数据
  • jenkins 部署 和构建java项目

    1 准备环境依赖 jdk yum install jdk 8u261 linux x64 rpm 2 下载jenkins yum install https mirrors tuna tsinghua edu cn jenkins redh
  • 什么是 DevOps?看这一篇就够了!

    文章目录 一 前因 二 记忆 三 他们说 3 1 Atlassian 回答 什么是 DevOps 3 2 微软回答 什么是 DevOps 3 3 AWS 回答 什么是 DevOps 四 DevOps 文化 4 1 什么是文化 4 2 什么是
  • 特征重要性计算方法及神经网络的特征重要性

    这是我第63篇文章 这篇文章主要简单讲一些常用特征重要性计算方法及神经网络的特征重要性计算方法 1 几种常用的特征重要性计算方法 1 1 树模型特征重要性 像xgboost lightgbm等树模型都有自己计算特征重要性的方法 其特征重要性