決策樹計算特徵重要性主要有兩種方法:
訓練過程中計算:
在訓練過程中,通過記錄特徵的分裂總次數、總/平均信息增益來對特徵重要性進行量化。例如,實際工程中我們會用特徵在整個GBDT、XGBoost裏面被使用的次數或者帶來的總/平均信息增益來給特徵重要度打分,最後進行排序。
如果一箇特徵被選爲分割點的次數越多,那麼這個特徵的重要性就越強。這個理念可以被推廣到集成算法中,只要將每棵樹的特徵重要性進行簡單的平均即可。
訓練後使用OOB(Out of Bag)數據計算:
第二種方式是訓練好模型之後,用Out of Bag(或稱Test)數據進行特徵重要性的量化計算。具體來說,先用訓練好的模型對OOB數據進行打分,計算出AUC或其他業務定義的評估指標;接着對OOB數據中的每個特徵: (1)隨機shuffle當前特徵的取值; (2)重新對當前數據進行打分,計算評估指標; (3)計算指標變化率。按照上面方式,對每個特徵都會得到一箇變化率,最後按照變化率排序來量化特徵重要性。
以上兩種方法都可以用來計算決策樹中的特徵重要性。