怎么利用permutation importance来解释xgboost模型的特征?

  统计/机器学习 监督式学习 特征选择    浏览次数:12833        分享
3

xgboost模型一般比较难解释特征的重要性,一个是用xgboost自带的feature importance。另外一个方法是用permutation importance。

请问permutation importance是怎么计算的?怎么来判断特征的重要性的?

 

ShenShiyi   2019-02-21 11:23



   3个回答 
13

permutation importance是用来衡量特征的重要性的,不光是xgboost,对于很多模型有可以用,可以是分类也可以是回归。

步骤很简单:

    1. 在数据集A上训练一个xgboost模型

    2. 在数据集B上测试这个模型,得到MSE(回归)或者logloss(分类,或者auc)

    3. 对数据集B中的某一个特征中的值打乱(随机置换,random permute),再用模型进行预测,得到新的指标,这个指标在步骤2和3之间的差值,就是这个特征的重要性

显然差值越大,说明被打乱对模型预测能力影响越大,也是特征越重要。

SofaSofa数据科学社区DS面试题库 DS面经

strong.man   2019-03-03 13:09

谢谢,很有用 - ShenShiyi   2019-04-19 12:24
10

你提到的permutation importance来自这篇文章Permutation importance: a corrected feature importance measure

Kaggle上有用lightgbm实现的版本:

https://www.kaggle.com/ogrellier/feature-selection-with-null-importances

https://www.kaggle.com/ogrellier/feature-selection-target-permutations

SofaSofa数据科学社区DS面试题库 DS面经

baseliner   2019-02-23 15:49

第一个链接失效了 - strong.man   2019-03-03 12:00
3

Stepwise selection:是用“失去”一个variable后对模型精度的伤害,来衡量这个variable的重要性

Permutation importance:是用“搅乱”一个variable后对模型精度的伤害,来衡量这个variable的重要性

这样比较好理解,也好记

SofaSofa数据科学社区DS面试题库 DS面经

神算子   2022-04-17 22:58



  相关讨论

在random forest和xgboost这类集成树模型中是如何计算_feature_importance的

Tree Shap value for xgboost

XGBoost中get_score中的cover是什么意思

如果用xgboost模型,那么还需要先做feature selection吗?

对于xgboost,还有必要做很多特征工程吗?

xgboost为什么会有seed?随机性体现在哪里?

xgboost是怎么做到regularization的?

为什么lightgbm比xgb快?

GBDT和XGBoost使用的都是回归树,原理上是怎么支持解决分类问题的?

stack多个xgboost效果并不理想

  随便看看

如何理解VC dimension?

医学统计里的c-index或者c-statistic是什么意思?

dropout rate一般设置多大?

怎么对pandas dataframe的列求众数

条件概率证明P(a,b|c) > P(a,b)