importance_type (str, 默認(rèn)值為 'weight') – 選擇輸出的哪一種重要程度。可選的5類重要程度如下所示:
(1)"weight":在所有的樹中,一個(gè)feature總共多少次被用于分割數(shù)據(jù)。
分析:
這個(gè)指標(biāo)是一個(gè)變量被用于分割的絕對(duì)次數(shù),這就造成了這個(gè)指標(biāo)的缺點(diǎn)。對(duì)于定類變量和定序變量,由于他們天生能用于分割的點(diǎn)就比較少,很容易被"weight"指標(biāo)所忽略。
一個(gè)簡(jiǎn)單的例子就是,假如我們的模型要預(yù)測(cè)一個(gè)人脫發(fā)是否嚴(yán)重,那我們可以引入一些定距變量如體溫,定比變量如身高、體重;我們當(dāng)然也可以引入定類變量和定序變量,例如一個(gè)人“是否面臨每周996加班的問(wèn)題”。
很顯然,根據(jù)常識(shí)我們知道“是否996加班”對(duì)于脫發(fā)是有很大影響的。但是由于它是一個(gè)二分類的變量,只能取0或者1,也就是天生只能有一個(gè)分類的點(diǎn),這樣就導(dǎo)致被模型使用的次數(shù)會(huì)降低。
而身高、體重這種連續(xù)性的變量,模型可以找到很多的分割點(diǎn),就可以不斷地被模型使用。例如,體重可以劃分為(50, 60]、(60,70]、(70,80]、(80,90]、(90,100]......由于這類變量先天就可以提供很多的分割點(diǎn),模型就可以反復(fù)地去使用這些變量分割數(shù)據(jù)。雖然分割的次數(shù)很多,但是可能每次分割完以后都分得不很清楚,對(duì)結(jié)果的貢獻(xiàn)也不大,最糟糕的情況是光增加過(guò)擬合了,對(duì)模型最終表現(xiàn)完全沒(méi)有幫助。在這里,身高體重雖然用的次數(shù)多,但是如果我們最后比較一下誰(shuí)更能把“是否脫發(fā)”分的清楚,可能“身高體重”會(huì)比“是否996加班”這個(gè)變量差得遠(yuǎn)得多。
(2)"gain":使用該feature的所有分割的平均信息增益(average gain),也就是節(jié)點(diǎn)分裂時(shí),該特征帶來(lái)信息增益(目標(biāo)函數(shù))優(yōu)化的平均值,是通過(guò)取每個(gè)feature對(duì)模型中每棵樹的貢獻(xiàn)來(lái)計(jì)算對(duì)應(yīng)特征對(duì)模型的相對(duì)貢獻(xiàn)。與其feature性相比,這個(gè)指標(biāo)的值越高,意味著它對(duì)生成預(yù)測(cè)更重要。
分析:
這個(gè)衡量指標(biāo)能夠克服"weight"存在的問(wèn)題。信息增益可以真正地反映一個(gè)指標(biāo)對(duì)于把預(yù)測(cè)的Y的label分清楚,做了多大的貢獻(xiàn)。這個(gè)是我比較推薦的計(jì)算方法,同時(shí)XGBoost的Sklearn API也把"gain"作為了計(jì)算feature importance的默認(rèn)方法。
這里求的是所有用到這個(gè)feature的來(lái)分裂的節(jié)點(diǎn)的信息增益的均值。
(3)"cover":所有使用到該feature的分割的平均覆蓋率。
分析:
這個(gè)指標(biāo)的含義是節(jié)點(diǎn)樣本目標(biāo)函數(shù)二階導(dǎo)數(shù)的和。具體解釋在XGBoost的官方GitHub倉(cāng)庫(kù)的R語(yǔ)言接口下面的有解釋,詳見(jiàn)相關(guān)倉(cāng)庫(kù)內(nèi)容的第35行:
code{cover}: the sum of second order gradient of training data classified to the leaf, if it is square loss, this simply corresponds to the number of instances in that branch. Deeper in the tree a node is, lower this metric will be
有時(shí)候,gain 排出來(lái)的順序的頭尾部值差距較大,這是因?yàn)樾畔⒃鲆嬗?jì)算時(shí),后續(xù)的優(yōu)化可能都不是一個(gè)量級(jí)。類似于神經(jīng)網(wǎng)絡(luò)在優(yōu)化損失函數(shù)時(shí),后續(xù)的量綱可能是十倍、百倍的差異。所以,綜上而言,如果有下游業(yè)務(wù)方,可以用 cover 的特征重要性計(jì)算方法。當(dāng)然,如果是單純的模型調(diào)優(yōu),gain 能指出最重要的特征。這些特征,某些場(chǎng)景下還能總結(jié)成硬規(guī)則。
(4)"total_gain":所有使用到該feature的分割的總增益。
(5)"total_cover":所有使用到該feature的分割的總覆蓋率。








暫無(wú)數(shù)據(jù)