使用诸如梯度提升的决策树方法的一个好处是,它们可以从训练有素的预测模型中自动提供特征重要性的估计。
在这篇文章中,您将发现如何使用Python中的XGBoost库来估计功能对预测建模问题的重要性。
看完这篇文章后,你会知道:
如何使用梯度增强算法计算特征重要性。
如何绘制由XGBoost模型计算的Python中的特征重要性。
如何使用XGBoost计算的功能重要性进行功能选择。
让我们开始吧。
更新2011年1月/ 2017年:更新以反映scikit-learn API版本0.18.1中的更改。
特征在梯度提升中的重要性
使用梯度提升的好处是,在构建了增强树之后,对于每个属性来检索重要性得分是比较直接的。
一般来说,重要性提供了一个分数,表明每个功能在建模模型中的增强决策树有用或有价值。 用决策树做出关键决策的属性越多,其相对重要性越高。
为数据集中的每个属性明确计算这一重要性,允许对属性进行排名并相互比较。
对于单个决策树计算重要性,每个属性分割点改进性能度量,由节点负责的观察数量加权。 性能测量可能是用于选择分割点的纯度(Gini指数)或另一个更具体的误差函数。
然后在模型中的所有决策树上对特征重要性进行平均。
有关如何在增强的决策树中计算特征重要性的更多技术信息,请参见“统计学习元素:数据挖掘,推理和预测”,第367页的第10.13.1节“预测变量的相对重要性”。
另外,请参阅Matthew Drury对StackOverflow问题“Boosting的相对变量重要性”的回答,他提供了一个非常详细和实用的答案。
原文链接:https://machinelearningmastery.com/feature-importance-and-feature-selection-with-xgboost-in-python/
