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

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

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

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

 

ShenShiyi   2019-02-21 11:23



   2个回答 
9

你提到的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
8

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


  相关主题

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

xgboost怎么调参?   9回答

stack多个xgboost效果并不理想   6回答

为啥Xgboost比GradientBoost好那么多?   6回答

xgboost是怎么做到regularization的?   2回答

为什么lightgbm比xgb快?   2回答

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

训练值都是正的,xgboost regression却预测出负数?   4回答

xgboost里怎么使用KS值?   1回答

xgboost展开到二阶导数有什么好处啊   1回答

如何理解xgboost與cart節點分數?   2回答

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



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!