特征重要性计算方法及神经网络的特征重要性
这是我第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。通过比较这个指标大小来判断特征的重要程度。
特征重要性计算方法及神经网络的特征重要性相关推荐
- XGBoost中特征重要性计算方法对比
XGBoost作为比赛大杀器,内置了几种重要性函数,今天我们就在这篇文章中梳理三种常见的特征重要性计算方法,并思考他们的使用场景. xgboost.plot_importance(booster, a ...
- 可解释性:对神经网络中层特征复杂度的解释与拆分
文 | 任洁,李明杰,刘泽旭 源 | 知乎 大家好,我们是任洁,李明杰和刘泽旭,本研究是在张拳石老师 @Qs.Zhang张拳石 指导下完成的工作. 随着深度神经网络的应用日益广泛,可解释性也逐渐受到更 ...
- Automatic Modulation Classification UsingConvolutional Neural Network 解读(基于SPWVD和BJD特征融合的卷积神经网络调制自动)
摘要:自动调制分类(AMC)在频谱监测和认知无线电中越来越重要.然而,现有的调制分类算法大多忽略了不同特征之间的互补性和特征融合的重要性.为了弥补这些缺陷,该文提出了一种基于卷积神经网络(CNN)的A ...
- 可解释性:对神经网络中层特征复杂度的解释与拆分丨ICML 2021
随着深度神经网络的应用日益广泛,可解释性也逐渐受到更多学者的关注. 近日,上海交通大学一年级博士生任洁.上海交大计算机系硕士生李明杰解读了团队发表于 ICML 2021的工作<对神经网络中层不同 ...
- 直播 | ICML 2021论文解读:对神经网络中层特征复杂度的解释与拆分
「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...
- 神经网络特征图计算_GNNFiLM:基于线性特征调制的图神经网络
GNN-FiLM:基于线性特征调制的图神经网络 论文链接:https://arxiv.org/abs/1906.12192v3 源代码:https://github.com/Microsoft/tf- ...
- 【李宏毅2020 ML/DL】P11 Logistic Regression | 由逻辑回归中的特征转换巧妙引出“神经网络”的概念
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...
- 基于haar特征的adaboost算法_SuperGlue一种基于图卷积神经网络的特征匹配算法
ETHZ ASL与Magicleap联名之作,CVPR 2020 Oral(论文见文末),一作是来自ETHZ的实习生,二作是当年CVPR2018 SuperPoint 的作者Daniel DeTone ...
- 分类预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多特征分类预测
分类预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多特征分类预测 目录 分类预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多特征分类预测 预测效果 基本介绍 ...
最新文章
- 费曼学习法与孔子温故知新学习法为两大重要学习法,前者外向表现,后者内省提升
- APUE读书笔记-14高级输入输出-06异步IO
- JSTL (标准标签库)
- SAP C4C Mashup port bindingF4帮助对话框里的数据源
- MessageQueue Message Looper Handler的解释说明
- 利用xslt对xml进行缩进格式化处理
- Centos 6 搭建安装 Gitlab
- 自适应采样次数的Ransac算法
- 峰情万种_Enhancement of Peak Visual
- 【antd-design-vue】a-table取消组件自带的暂无数据图片
- 获取金山词霸2007注册码
- 爬虫不借助浏览器登录_借助Android音乐播放器和旅行组合踏上道路
- Spring Web 编程详解
- 【一日一logo|day_8】坦格利安家族?修改什么的不存在的
- android 最火框架,一个牛逼哄哄的Android框架One,秒杀最火的Xutils
- 亚马逊云EC2助力5G产品测试
- Idea使用Alibaba Cloud Toolkit实现一键部署项目到linux环境
- 哈工大计算机网络Mooc 最后的总结
- FireFox安装广告净化器或其他三方插件
- 记录一次腾讯实习投递经历(一)