GradientBoostingClassifier如何计算特征重要性?

8

我正在使用scikit-learn的梯度提升树分类器GradientBoostingClassifier。它可以通过feature_importances_获得特征重要性分数。这些特征重要性是如何计算的?

我想了解scikit-learn正在使用的算法,以帮助我理解如何解释这些数字。文档中没有列出该算法。


这里有文档记录:http://scikit-learn.org/stable/modules/ensemble.html#feature-importance-evaluation - EdChum
谢谢,@EdChum!事实证明那不是完全正确的链接(你提供的链接是RandomForests和ExtraTrees的文档),但它帮助我找到了GradientBoostingClassifier的答案。我写了一个解释性的答案。感谢你的帮助! - D.W.
1个回答

13

这在scikit-learn的文档中有记录(其他地方)。具体来说,是这样工作的:

对于每个树,我们计算特征F的特征重要性,作为将基于特征F进行分割的节点所遍历的样本比例(请参见此处)。然后,我们将所有树的那些数字平均起来(如此处所述)。

并没有准确描述scikit-learn如何估计将穿过基于特征F进行分裂的树节点的节点比例。

解释:分数将在[0,1]范围内。得分越高意味着该特征更重要。这是一个形状为(n_features,)的数组,其值为正数且总和为1.0。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接