使用XGBoost在Python中的功能重要性和功能選擇

axbtseeqs574493892發表於2017-10-28

使用諸如梯度提升的決策樹方法的一個好處是,它們可以從訓練有素的預測模型中自動提供特徵重要性的估計。

在這篇文章中,您將發現如何使用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

相關文章