使用諸如梯度提升的決策樹方法的一個好處是,它們可以從訓練有素的預測模型中自動提供特征重要性的估計。
在這篇文章中,您將發現如何使用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/