使用XGBoost在Python中的功能重要性和功能选择

使用诸如梯度提升的决策树方法的一个好处是,它们可以从训练有素的预测模型中自动提供特征重要性的估计。

在这篇文章中,您将发现如何使用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/

 

转载于:https://www.cnblogs.com/chenyibin/p/7748265.html

你可能感兴趣的:(人工智能,python,数据结构与算法)