xgboost模型一般比较难解释特征的重要性,一个是用xgboost自带的feature importance。另外一个方法是用permutation importance。
请问permutation importance是怎么计算的?怎么来判断特征的重要性的?
3个回答
permutation importance是用来衡量特征的重要性的,不光是xgboost,对于很多模型有可以用,可以是分类也可以是回归。
步骤很简单:
1. 在数据集A上训练一个xgboost模型
2. 在数据集B上测试这个模型,得到MSE(回归)或者logloss(分类,或者auc)
3. 对数据集B中的某一个特征中的值打乱(随机置换,random permute),再用模型进行预测,得到新的指标,这个指标在步骤2和3之间的差值,就是这个特征的重要性
显然差值越大,说明被打乱对模型预测能力影响越大,也是特征越重要。
SofaSofa数据科学社区DS面试题库 DS面经你提到的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
Stepwise selection:是用“失去”一个variable后对模型精度的伤害,来衡量这个variable的重要性
Permutation importance:是用“搅乱”一个variable后对模型精度的伤害,来衡量这个variable的重要性
这样比较好理解,也好记
SofaSofa数据科学社区DS面试题库 DS面经