特征重要性排序–Permutation Importance

参考:Permutation Importance | Kaggle

相比于其他衡量特征重要性的方法,Permutation Importance的优点:

  • 计算量低
  • 广泛使用和容易理解
  • 与我们要测量特征重要性的属性一致

Permutation Importance的计算是在模型训练完成后进行的,即,模型参数不再改变。如果我们将验证集中的单独一列的数据进行打乱,并保持其他列和目标值不变,那么,预测打乱后的验证集的结果会怎么变化?

上图示例是将第二列的数据进行shaffle,如果模型预测对该列特征的依赖性很大,那么打乱后,预测精度会受到很大的影响。

具体实施流程:

  1. 训练模型
  2. 打乱其中一列的数据,用该数据集进行预测,评估预测精度下降来提现该特征变量的重要性
  3. 将验证数据集还原,并重复第二步,分析其他特征变量

代码示例:

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifierdata = pd.read_csv('../input/fifa-2018-match-statistics/FIFA 2018 Statistics.csv')
y = (data['Man of the Match'] == "Yes")  # Convert from string "Yes"/"No" to binary
feature_names = [i for i in data.columns if data[i].dtype in [np.int64]]
X = data[feature_names]
train_X, val_X, train_y, val_y = train_test_split(X, y, random_state=1)
my_model = RandomForestClassifier(n_estimators=100,random_state=0).fit(train_X, train_y)import eli5
from eli5.sklearn import PermutationImportanceperm = PermutationImportance(my_model, random_state=1).fit(val_X, val_y)
eli5.show_weights(perm, feature_names = val_X.columns.tolist())

像大部分数据科学中的结果一样,当打乱单个列的时候的结果变化会存在一定随机性,我们通过重复这个过程多次打乱来测量permutation importance计算的随机性大小。

我们通过重复这个过程多次打乱来测量permutation importance计算的随机性大小。

经常会遇到一些负的值,在这种情形下,在打乱(噪声)数据上的预测会得到比真实数据更高精度的结果,该特征的重要性接近于0,但存在一定的机会导致在打乱数据上的预测会更精确。这种情形一般更容易发生在小数据集,因为会有更大几率好运。

特征重要性排序--Permutation Importance相关推荐

  1. 随机森林的特征重要性排序

    OOB计算 用未被选择到的学习的数据,做验证集计算.不必另外做validation了 Feature Selection 如果没有做好这部分,也是有缺点的: 其中最致命的就是,可能得到的是错误的答案, ...

  2. 使用XGboost模块XGBClassifier、plot_importance来做特征重要性排序——修改f1,f2等字段

    如果你还不知道如何使用XGboost模块XGBClassifier.plot_importance来做特征重要性排序,戳这个网址即可. 下面我们讲一个全网都没好好讲的问题:如何修改f1,f2成对应的特 ...

  3. 随机森林特征重要性(Variable importance)评估方法

    Random Forest Variable importance 算法介绍 实现 算法流程 分类 回归 实验 实验1:waveform数据集(分类) 实验2:superconductivity数据集 ...

  4. gbdt 回归 特征重要性 排序_RandomForest、GBDT、XGBoost、lightGBM 原理与区别

    RF,GBDT,XGBoost,lightGBM都属于集成学习(Ensemble Learning),集成学习的目的是通过结合多个基学习器的预测结果来改善基本学习器的泛化能力和鲁棒性. 根据基本学习器 ...

  5. 随机森林做特征重要性排序和特征选择

    随机森林模型介绍: 随机森林模型不仅在预测问题上有着广泛的应用,在特征选择中也有常用. 随机森林是以决策树为基学习器的集成学习算法.随机森林非常简单,易于实现,计算开销也很小,更令人惊奇的是它在分类和 ...

  6. gbdt 回归 特征重要性 排序_gbdt、xgb、lgb、cat面经整理——from牛客

    注意,下文的原始的gbdt是以sklearn中的gbdt的实现为例子来阐述的,因为gbdt的改进版本有很多,为了叙述方便,使用这个最为人所知的实现来描述. 你有自己用过别的模型然后调参之类的吗?能说一 ...

  7. 利用随机森林进行特征重要性排序

    第一步就是导包,这里我们主要需要用到的就是sklearn和pandas 我们先对自己的数据集进行一下处理 import numpy as np import pandas as pd testset= ...

  8. LR模型特征重要性排序

    1.特征重要性的意义 LR模型也就是逻辑回归模型,作为一个简单的常用的模型,其有非常多的优点,除了模型简单,容易实现分布式,还有一个重要的优点就是模型的可解释性非常好.因为每个特征都对应一个模型参数w ...

  9. 随机森林对特征重要性排序

    two methods:  1.Mean decrease impurity 不纯度降低 大概是对于每颗树,按照impurity(gini /entropy /information gain)给特征 ...

最新文章

  1. GitHub开源游戏:CityBound(模拟城市)
  2. 【每周CV论文】初学深度学习图像对比度增强应该要读的文章
  3. 知乎高赞回答:是否有必要系统学习概率图模型?
  4. c语言是静态语言python语言是脚本语言对吗_初中生想学编程,请问先学C语言好还是先学Python?...
  5. 数据结构单向不循环链表实现多项式合并
  6. 《软件需求分析(第二版)》第 6 章——获取客户的需求 重点部分总结
  7. rfc方式的集成 sap_转载: 与SAP集成的接口方式比较:IDOC BAPI RFC 之间的区别
  8. java爪哇咖啡语言_“爪哇咖啡JAVACAFE及图”商标注册案例分析
  9. Gin 快速入门知识点总结(奇淼)
  10. JNI返回复杂对象之中的一个
  11. c#定时器Timer
  12. UG NX二次开发(C++)-环境设置-内部模式(插件)制作设置
  13. 世界各国Google域名后缀对照表
  14. 美国篮球巨星科比坠机去世 年仅41岁
  15. 压敏电阻的原理和使用介绍
  16. 贵大计算机专业高考分数线,2020贵州大学录取分数线一览表
  17. 中关村-DIY之国外网盘下载测试
  18. Linux小知识:查看当前最耗费CPU的线程(Arthas工具)
  19. 利用Python做excel文本合并(根据左侧单元格,快速合并右侧单元格内容)
  20. Unsplash能找到很多免费无版权图片

热门文章

  1. JS 中国标准时间转换yy-mm-dd HH:mm:ss
  2. wpsword怎样涂黑方框_Excel中如何插入空心小方块和实心小方块的标志?
  3. 特殊符号,emoji表情,四字节去除问题
  4. 阿里云视频点播-对接注意点
  5. LInux 下 Anaconda多环境切换
  6. CTF线下AWD攻防步骤总结
  7. [IPTV]华为悦盒EC6108V9A刷机
  8. Spring Cloud Alibaba——Nacos服务配置中心
  9. 卸载linux 装win7系统软件,win7与ubuntu双系统完美卸载ubuntu的方法
  10. java 内存很高_Java服务器内存和CPU占用过高的原因