08 集成學(xué)習(xí) - XGBoost概述

概述

XGBoost是GBDT算法的一種變種驹饺,是一種常用的有監(jiān)督集成學(xué)習(xí)算法搏存;是一種
伸縮性強(qiáng)硝逢、便捷的可并行構(gòu)建模型的Gradient Boosting算法勃救。

注意:這里說可以并行構(gòu)建模型领曼,并不是說XGBoost建立的下一輪基模型不依賴于上一步的結(jié)果逗堵,而是指生成每個基模型的決策樹時泥从,能夠快速進(jìn)行并行運(yùn)算,即加速了單個模型的運(yùn)算昔瞧。

面試中 可能會問為什么XGBoost是一個并行結(jié)構(gòu)袁滥?我們可以反駁他說:XGBoost模型本身還是串行的憨奸,該模型還是基于梯度提升的理念進(jìn)行模型構(gòu)建的。只是在構(gòu)建每一個模型的時候可以進(jìn)行并行操作锚赤,相對提升一些運(yùn)行速度匹舞。

相關(guān)文獻(xiàn)

XGBoost官網(wǎng):http://xgboost.readthedocs.io
XGBoost Github源碼位置:https://github.com/dmlc/xgboost线脚;
XGBoost支持開發(fā)語言:Python赐稽、R、Java浑侥、Scala姊舵、C++

在XGBoost中其實包含了兩套不同的API,雖然都在XGBoost包里寓落,兩種不同的API擁有兩種不同的傳輸方式括丁。一種是將數(shù)據(jù)轉(zhuǎn)化成XGBoost認(rèn)識的DMatrix。第二種兼容了Pthon的接受數(shù)據(jù)的方式:x_train零如,y_train躏将。

安裝

在Python中集成XGBoost,請參考我寫的《安裝 xgboost 庫


回顧 CART考蕾、GBDT
05 決策樹 - 生成算法 ID3、C4.5会宪、CART

預(yù)測小男孩和老爺爺

回顧 GBDT算法流程:最終預(yù)測結(jié)果=∑ 每棵樹上的預(yù)測值
小男孩在第1棵樹預(yù)測結(jié)果是2肖卧,第2棵樹預(yù)測結(jié)果是0.9,最終預(yù)測結(jié)果=f(1)+f(2) = 2+0.9掸鹅;

XGBoost模型-目標(biāo)函數(shù):
Boosting的模型多少會存在一些過擬合的問題塞帐,由于過擬合的存在,對最后的預(yù)測結(jié)果始終會存在一些錯誤巍沙,即使調(diào)參也調(diào)不好葵姥。所以在建立模型的時候會考慮加上懲罰項。

Obj(θ) 就是我想在第n+1輪構(gòu)建的目標(biāo)函數(shù)句携,在原有誤差 L(θ) 基礎(chǔ)上榔幸,增加一個懲罰項 Ω(θ) ; 以上是模型構(gòu)建的初步思路矮嫉,具體懲罰項加的是什么削咆?后續(xù)再考慮。

XGBoost 目標(biāo)函數(shù)

回顧 過擬合和欠擬合的概念:
06 回歸算法 - 損失函數(shù)蠢笋、過擬合欠擬合

過擬合和欠擬合

GBDT目標(biāo)函數(shù) - y^
通過加入基模型拨齐,下圖引用自一篇陳天奇的論文,其中用f(x)表示基模型昨寞,我們之前講GDBT章節(jié)的時候用的符合是h(x)瞻惋;注意一下即可厦滤。

一步一步得預(yù)測,最后得到第t步的預(yù)測結(jié)果歼狼。

GBDT在每一輪迭代過程中馁害,使得預(yù)測值和損失值的誤差和達(dá)到最小,即完成了最優(yōu)模型的構(gòu)建蹂匹。 obj=∑ L(y,y^) 碘菜;

GBDT目標(biāo)函數(shù)

XGBoost的目標(biāo)函數(shù) - y^
XGBoost做了一個更新,從下圖可以看到限寞,左邊這部分提升算法的模型的步驟沒有變化忍啸。但提升算法中基模型f(x)的值怎么去計算發(fā)生了變化。
即最終的預(yù)測模型怎么得到發(fā)生了變化履植,最優(yōu)解y^對應(yīng)的損失函數(shù)obj在GBDT的損失函數(shù)obj基礎(chǔ)上计雌,我們增加的懲罰項來控制基模型的復(fù)雜度。

至此我們構(gòu)建了新的損失函數(shù)obj作為XGBoost的損失函數(shù):

XGBoost的目標(biāo)函數(shù)

q(x)是啥玫霎? 回顧上面小男孩凿滤、老爺爺?shù)哪菑垐D。
x是小男孩庶近、小姑娘翁脆、老爺爺。q(x)是落入當(dāng)前模型的葉子節(jié)點(diǎn)編號鼻种。
看下圖左邊這棵樹:q(小男孩) = 1反番,小男孩的觀測值落入了當(dāng)前葉子節(jié)點(diǎn)編號1。同理叉钥,得到其他的q(x)值罢缸。

對于左邊這棵樹,w1 是第一個葉子節(jié)點(diǎn)的預(yù)測值 = 小男孩投队;
ft(x) = wq(x)


最后分析針對第t棵樹的懲罰項:Ω(ft) = γTt + 0.5λ∑wj2 其中 j=(1,2,3...T)
Tt代表第t棵樹葉子節(jié)點(diǎn)個數(shù)枫疆,γ、λ即超參數(shù)敷鸦∠⑿ǎ∑wj2 代表第t棵樹葉子節(jié)點(diǎn)預(yù)測值的平方和。這個思想和構(gòu)建L2正則比較像轧膘,08 回歸算法 - 解決過擬合 - L2(Ridge)和L1(LASSO)正則钞螟。

根據(jù)上面的知識對XGBoost公式推導(dǎo)

第t次迭代后,模型的預(yù)測值= t-1次模型的預(yù)測值+第t棵樹的預(yù)測值谎碍。

目標(biāo)函數(shù)可以寫成:

回顧泰勒公式:

泰勒公式

將誤差函數(shù)在yi^(t-1) 處進(jìn)行二階泰勒展開鳞滨。即對原損失函數(shù)進(jìn)行展開,yi是定值蟆淀,y^t是變化量拯啦,即泰勒公式中的Δx澡匪。
然后將yit展開: yit = L( y^ it-1 + ft(x))

原始損失函數(shù)左,轉(zhuǎn)化為右邊的公式褒链,再做泰勒展開
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末唁情,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子甫匹,更是在濱河造成了極大的恐慌甸鸟,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兵迅,死亡現(xiàn)場離奇詭異抢韭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)恍箭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門刻恭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扯夭,你說我怎么就攤上這事鳍贾。” “怎么了交洗?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵骑科,是天一觀的道長。 經(jīng)常有香客問我藕筋,道長纵散,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任隐圾,我火速辦了婚禮,結(jié)果婚禮上掰茶,老公的妹妹穿的比我還像新娘暇藏。我一直安慰自己,他們只是感情好濒蒋,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布盐碱。 她就那樣靜靜地躺著,像睡著了一般沪伙。 火紅的嫁衣襯著肌膚如雪瓮顽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天围橡,我揣著相機(jī)與錄音暖混,去河邊找鬼。 笑死翁授,一個胖子當(dāng)著我的面吹牛拣播,可吹牛的內(nèi)容都是我干的晾咪。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼贮配,長吁一口氣:“原來是場噩夢啊……” “哼谍倦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起泪勒,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤昼蛀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后圆存,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叼旋,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年辽剧,在試婚紗的時候發(fā)現(xiàn)自己被綠了送淆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡怕轿,死狀恐怖偷崩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情撞羽,我是刑警寧澤阐斜,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站诀紊,受9級特大地震影響谒出,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜邻奠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一笤喳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碌宴,春花似錦杀狡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至碑隆,卻和暖如春恭陡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背上煤。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工休玩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓哥捕,卻偏偏與公主長得像牧抽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子遥赚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容