- 很全面的闡釋XGBoost: 集成學(xué)習(xí)之Boosting —— XGBoost
大體來看,XGBoost 在原理方面的改進(jìn)主要就是在損失函數(shù)上作文章景鼠。
- 一是在原損失函數(shù)的基礎(chǔ)上添加了正則化項(xiàng)產(chǎn)生了新的目標(biāo)函數(shù)民假,這類似于對(duì)每棵樹進(jìn)行了剪枝并限制了葉結(jié)點(diǎn)上的分?jǐn)?shù)來防止過擬合开泽。
- 二是對(duì)目標(biāo)函數(shù)進(jìn)行二階泰勒展開廓鞠,利用二階導(dǎo)信息來最小化目標(biāo)函數(shù)。Gradient Boosting只利用了一階導(dǎo)信息怎囚,而 XGBoost 引入二階導(dǎo)的一大好處是可以推導(dǎo)出一種新的增益計(jì)算方法卿叽,事實(shí)證明采用新的增益計(jì)算方法在優(yōu)化目標(biāo)函數(shù)上更加有效,精確度上也勝過傳統(tǒng)的 GBDT恳守。
- XGBoost 與 GBDT 區(qū)別:
- 傳統(tǒng) GBDT 在優(yōu)化時(shí)只用到一階導(dǎo)數(shù)信息考婴,XGBoost 則對(duì)目標(biāo)函數(shù)進(jìn)行了二階泰勒展開,同時(shí)用到了一階和二階導(dǎo)數(shù)催烘。另外 XGBoost 工具支持自定義損失函數(shù)蕉扮,只要函數(shù)可一階和二階求導(dǎo)。
- XGBoost 在損失函數(shù)中加入正則化項(xiàng)颗圣,用于控制模型的復(fù)雜度,防止過擬合屁使,從而提高模型的泛化能力
- 傳統(tǒng) GBDT 采用的是均方誤差作為內(nèi)部分裂的增益計(jì)算指標(biāo)(因?yàn)橛玫亩际腔貧w樹)在岂,而 XGBoost 使用的是經(jīng)過優(yōu)化推導(dǎo)后的式子,即頂部鏈接文章中式
- XGBoost 添加了對(duì)稀疏數(shù)據(jù)的支持蛮寂,在計(jì)算分裂增益時(shí)不會(huì)考慮帶有缺失值的樣本蔽午,這樣就減少了時(shí)間開銷。在分裂點(diǎn)確定了之后酬蹋,將帶有缺失值的樣本分別放在左子樹和右子樹及老,比較兩者分裂增益,選擇增益較大的那一邊作為默認(rèn)分裂方向
- 傳統(tǒng) GBDT 在損失不再減少時(shí)會(huì)停止分裂范抓,這是一種預(yù)剪枝的貪心策略骄恶,容易欠擬合。XGBoost采用的是后剪枝的策略匕垫,先分裂到指定的最大深度 (max_depth) 再進(jìn)行剪枝僧鲁。而且和一般的后剪枝不同, XGBoost 的后剪枝是不需要驗(yàn)證集的象泵。
- 說了這么多 XGBoost 的優(yōu)點(diǎn)寞秃,其當(dāng)然也有不完美之處,因?yàn)橐谟?xùn)練之前先對(duì)每個(gè)特征進(jìn)行預(yù)排序并將結(jié)果存儲(chǔ)起來偶惠,對(duì)于空間消耗較大春寿。另外雖然相比傳統(tǒng)的 GBDT 速度是快了很多,但和后來的 LightGBM 比起來還是慢了不少
酷文章:快的不要不要的lightGBM
- XGBoost 對(duì)比 LightGBM的不足:
- 每次迭代訓(xùn)練時(shí)需要讀取整個(gè)數(shù)據(jù)集忽孽,耗時(shí)耗內(nèi)存绑改;
- 使用Basic Exact Greedy Algorithm計(jì)算最佳分裂節(jié)點(diǎn)時(shí)需要預(yù)先將特征的取值進(jìn)行排序谢床,排序之后為了保存排序的結(jié)果,費(fèi)時(shí)又費(fèi)內(nèi)存绢淀;
- 計(jì)算分裂節(jié)點(diǎn)時(shí)需要遍歷每一個(gè)候選節(jié)點(diǎn)萤悴,然后計(jì)算分裂之后的信息增益,費(fèi)時(shí)皆的;
- 生成決策樹是level-wise級(jí)別的覆履,也就是預(yù)先設(shè)置好樹的深度之后,每一顆樹都需要生長(zhǎng)到設(shè)置的那個(gè)深度费薄,這樣有些樹在某一次分裂之后效果甚至沒有提升但仍然會(huì)繼續(xù)劃分樹枝硝全,然后再次劃分....之后就是無(wú)用功了,耗時(shí)楞抡。
為了避免上述XGB的缺陷伟众,并且能夠在不損害準(zhǔn)確率的條件下加快GBDT模型的訓(xùn)練速度,lightGBM在傳統(tǒng)的GBDT算法上加了兩個(gè)技術(shù):
- 單邊梯度采樣 Gradient-based One-Side Sampling (GOSS)召廷;
- 互斥稀疏特征綁定 Exclusive Feature Bundling (EFB)