xgboost代價(jià)函數(shù)里加入正則項(xiàng)找颓,是否優(yōu)于cart的剪枝”合愈。其實(shí)陳天奇大神的slides里面也是有提到的,我當(dāng)一下搬運(yùn)工击狮。
決策樹的學(xué)習(xí)過程就是為了找出最優(yōu)的決策樹佛析,然而從函數(shù)空間里所有的決策樹中找出最優(yōu)的決策樹是NP-C問題,所以常采用啟發(fā)式(Heuristic)的方法彪蓬,如CART里面的優(yōu)化GINI指數(shù)寸莫、剪枝、控制樹的深度档冬。這些啟發(fā)式方法的背后往往隱含了一個(gè)目標(biāo)函數(shù)膘茎,這也是大部分人經(jīng)常忽視掉的。xgboost的目標(biāo)函數(shù)如下:
其中正則項(xiàng)控制著模型的復(fù)雜度酷誓,包括了葉子節(jié)點(diǎn)數(shù)目T和leaf score的L2模的平方:
那這個(gè)跟剪枝有什么關(guān)系呢披坏??盐数?
跳過一系列推導(dǎo)棒拂,我們直接來看xgboost中樹節(jié)點(diǎn)分裂時(shí)所采用的公式:
這個(gè)公式形式上跟ID3算法(采用entropy計(jì)算增益) 、CART算法(采用gini指數(shù)計(jì)算增益) 是一致的玫氢,都是用分裂后的某種值 減去 分裂前的某種值着茸,從而得到增益。為了限制樹的生長(zhǎng)琐旁,我們可以加入閾值涮阔,當(dāng)增益大于閾值時(shí)才讓節(jié)點(diǎn)分裂,上式中的gamma即閾值灰殴,它是正則項(xiàng)里葉子節(jié)點(diǎn)數(shù)T的系數(shù)敬特,所以xgboost在優(yōu)化目標(biāo)函數(shù)的同時(shí)相當(dāng)于做了預(yù)剪枝。另外牺陶,上式中還有一個(gè)系數(shù)lambda伟阔,是正則項(xiàng)里leaf score的L2模平方的系數(shù),對(duì)leaf score做了平滑掰伸,也起到了防止過擬合的作用皱炉,這個(gè)是傳統(tǒng)GBDT里不具備的特性。