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

  统计/机器学习 监督式学习 特征选择    浏览次数:1106        分享
1
大概觉得和某特征作为切分点使用的频度有关,但是对具体的算法很迷糊。
 

nobodyoo1   2018-07-29 15:43



   1个回答 
9

随机森林和xgboost中的importance是一样的计算方法。


概括地说,一棵树中,某个特征的importance就是损失函数在这个特征切分点上的提升。在整个模型中,importance就是它在所有树上importance的均值。

例如,对于一个二元分类问题,我们用了gini impurity作为分叉标准的随机森林。假设,森林中一共三棵树。

特征A在树1中作为划分点,并且在这个点上,gini从0.6降到0.3。

特征A在树2中作为划分点,并且在这个点上,gini从0.5降到0.4。

特征A并没有出现在树3中。

特征A的importance为:((0.6-0.3)+(0.5-0.4))/3=0.13

特征B在树1中作为划分点,并且在这个点上,gini从0.3降到0.1。

特征B在树2中作为划分点,并且在这个点上,gini从0.7降到0.5。

特征B在树3中作为划分点,并且在这个点上,gini从0.4降到0.1。

特征B的importance为:((0.3-0.1)+(0.7-0.5)+(0.4-0.1))/3=0.23


上面的例子是gini,当然也可以entropy。对于回归任务来说,损失函数可以是MSE,或者MAE之类。


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

maxroot   2018-07-29 16:26

非常清晰,感谢! - nobodyoo1   2018-07-29 16:37
赞! - niiii   2018-12-30 14:32


  相关主题

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

xgboost里的每棵树是不是等权重的?   2回答

xgboost中的决策树的复杂度是怎么定义的?   2回答

Tree Shap value for xgboost   2回答

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

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

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

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

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

为什么lightgbm比xgb快?   2回答

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

到底什么时候用lightgbm什么时候用xgb   2回答



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

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

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

我们谢绝答非所问。

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

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