XGBoost作為比賽大殺器,內(nèi)置了幾種重要性函數(shù)谱姓,今天我們就在這篇文章中梳理三種常見的特征重要性計算方法刨晴,并思考他們的使用場景。
xgboost.plot_importance(booster, ax=None, height=0.2, xlim=None, ylim=None,
title='Feature importance', xlabel='F score', ylabel='Features', fmap='',
importance_type='weight', max_num_features=None, grid=True,
show_values=True, **kwargs)
在上邊函數(shù)中茄靠,我們可以通過修改importance_type參數(shù)改變?nèi)绾斡嬎闾卣髦g的importance蝶桶。可選的取值為:“weight”, “gain”, “cover”
weight
”weight” is the number of times a feature appears in a tree
- 指在子樹模型進行分類時,用到的特征次數(shù)厌小,根據(jù)特征被用到的次數(shù)進行排序战秋。
- 該指標會將數(shù)值特征給予更高的權(quán)重,因為數(shù)值特征往往是連續(xù)的癣蟋,變數(shù)也比分類特征多,分裂的空間就越大狰闪,所以這個指標會偏向數(shù)值特征疯搅,忽略分類特征。
gain
”gain” is the average gain of splits which use the feature
- 這是信息增益的泛化概念尝哆。是指在節(jié)點分裂是秉撇,該特征帶來的信息增益甜攀。
- gain用到了熵秋泄,他可以方便的找出最直接的特征,即如果某個特征下label比較單一规阀,那么這個特征就會比較重要恒序。
cover
”cover” is the average coverage of splits which use the feature where coverage is defined as the number of samples affected by the split
- 形象來說,就是樹模型在分裂時谁撼,特征下的葉子結(jié)點涵蓋的樣本數(shù)除以特征用來分裂的次數(shù)歧胁。分裂越靠近根部厉碟,cover 值越大喊巍。
- cover對于分類特征更友好。
總結(jié)
如果有下游業(yè)務方箍鼓,更建議用 cover 的特征重要性計算方法崭参。當然,如果是單純的模型調(diào)優(yōu)款咖,gain 能指出最重要的特征何暮。這些特征,某些場景下還能總結(jié)成硬規(guī)則铐殃。