Xgboost算法理解

上一篇文章講述了general GBDT的模型原理,鏈接:http://www.reibang.com/p/943fcb6d651a萄金。本文講述Xgboost的算法原理媚朦。
最好的教材是官網(wǎng)的tutorial询张。有一點(diǎn)不夠general的是,tutorial的Loss函數(shù)假定為均方誤差份氧。本文主要突出Xgboost改進(jìn)的地方蜗帜。

模型目標(biāo)函數(shù)

機(jī)器學(xué)習(xí)問(wèn)題的本質(zhì)是數(shù)據(jù)分布的模型擬合,用數(shù)學(xué)語(yǔ)言表達(dá)就是目標(biāo)函數(shù)的最優(yōu)化問(wèn)題厅缺。跟GBDT類似,Xgboost對(duì)于給定數(shù)據(jù)集進(jìn)行additive trainning诀豁,學(xué)習(xí)K棵樹(shù)舷胜,得到下面的預(yù)測(cè)函數(shù):



上述預(yù)測(cè)函數(shù)是如何得到的呢?我們需要分析目標(biāo)函數(shù)翻伺,如下:



其中展氓,第一項(xiàng)跟GBDT中是一樣的,選定某個(gè)損失函數(shù),計(jì)算預(yù)測(cè)值與真實(shí)值的偏差空入,第二項(xiàng)為正則項(xiàng)族檬,傳統(tǒng)的GBDT并沒(méi)有,也是Xgboost改進(jìn)的地方埋凯。我們知道決策樹(shù)的一個(gè)缺點(diǎn)就是易過(guò)擬合扫尖,需要剪枝操作,這里的正則項(xiàng)起到類似的作用甩恼。
第t次迭代沉颂,目標(biāo)函數(shù)具體寫(xiě)作:

然后铸屉,基于前t-1次的預(yù)測(cè)值yt-1處做二階的泰勒展開(kāi):



而GBDT的這部分則是基于前t-1次的預(yù)測(cè)值yt-1處做一階的泰勒展開(kāi),這也是Xgboost改進(jìn)的地方顷啼,泰勒二階近似比一階近似更接近真實(shí)的Loss Fnction,自然優(yōu)化的更徹底椰于。
接下來(lái)分析正則項(xiàng)的形式仪搔,如下:

為什么是這樣的形式,官網(wǎng)的說(shuō)明是:
Of course there is more than one way to define the complexity, but this specific one works well in practice.
其中偏陪,T為葉子節(jié)點(diǎn)的數(shù)目煮嫌,w為葉子節(jié)點(diǎn)的value向量。
對(duì)樹(shù)函數(shù)f作如下變換:

將正則項(xiàng)的具體形式和變換后的樹(shù)函數(shù)帶入目標(biāo)函數(shù)饥脑,如下:



統(tǒng)一i灶轰,j的求和刷钢,如下:

可以看出t輪的L函數(shù)是關(guān)于w的二次函數(shù)内地,求極值:

回歸樹(shù)的學(xué)習(xí)策略

上一節(jié)明確了Xgboost每棵樹(shù)的擬合目標(biāo),但是如何擬合呢非凌?如何確定樹(shù)的結(jié)構(gòu)呢茬祷?
先回顧下一般的樹(shù)的分裂的方法?



Xgboost的打分函數(shù):



Xgboost的分裂規(guī)則:

還有一個(gè)問(wèn)題,那每棵樹(shù)的非葉子節(jié)點(diǎn)的最佳分割點(diǎn)怎么找沃粗?

解釋下最盅,近似于基于hi的直方圖分割起惕,看成一種近似的分割。我的理解跟特征的離散化很像嘀粱。傳統(tǒng)的暴力搜索十分耗時(shí)辰狡。

與GBDT的其他不同

  • Shrinkage(縮減)
    xgboost在進(jìn)行完一次迭代后,會(huì)將葉子節(jié)點(diǎn)的權(quán)重乘上該系數(shù)娃磺,主要是為了削弱每棵樹(shù)的影響叫倍,讓后面有更大的學(xué)習(xí)空間。實(shí)際應(yīng)用中涯冠,一般把eta設(shè)置得小一點(diǎn)逼庞,然后迭代次數(shù)設(shè)置得大一點(diǎn)瞻赶。
  • 列抽樣
    這一點(diǎn)借鑒的是隨機(jī)森林,就是對(duì)特征屬性抽樣璧南。行采樣是對(duì)樣本的數(shù)目采樣师逸。
  • 支持并行計(jì)算
    首先明確一點(diǎn)的是,并行的方式不是樹(shù)同時(shí)訓(xùn)練动知,而是在訓(xùn)練每棵樹(shù)時(shí)的分裂過(guò)程员辩。排序數(shù)據(jù)是樹(shù)學(xué)習(xí)最耗時(shí)的方面。 為了減少分類成本丹皱,數(shù)據(jù)存儲(chǔ)在稱為“塊”的內(nèi)存單元中。 每個(gè)塊都有按相應(yīng)特征值排序的數(shù)據(jù)列讼油。 這種計(jì)算只需要在訓(xùn)練前完成一次呢簸,以后可以重復(fù)使用。塊的排序可以獨(dú)立完成嘿架,并可以在CPU的并行線程之間分配啸箫。 由于每列的統(tǒng)計(jì)數(shù)據(jù)收集是并行完成的,所以可以并行分割查找忘苛。
  • 缺失值處理



    缺失值是實(shí)際的機(jī)器學(xué)習(xí)項(xiàng)目中不容忽視的問(wèn)題扎唾。自帶的工具包幫你解決不是好事,因?yàn)槟J(rèn)的處理方式不一定符合你的場(chǎng)景荧呐。Xgboost的處理方式是纸镊,缺失值數(shù)據(jù)會(huì)被分到左子樹(shù)和右子樹(shù)分別計(jì)算損失,選擇較優(yōu)的那個(gè)峰搪。如果訓(xùn)練中沒(méi)有數(shù)據(jù)缺失凯旭,預(yù)測(cè)時(shí)出現(xiàn)了數(shù)據(jù)缺失,默認(rèn)分類到右子樹(shù)鞠柄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末弄贿,一起剝皮案震驚了整個(gè)濱河市差凹,隨后出現(xiàn)的幾起案子侧馅,更是在濱河造成了極大的恐慌呐萌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罗晕,死亡現(xiàn)場(chǎng)離奇詭異赠堵,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)酬屉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)呐萨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)莽囤,“玉大人,你說(shuō)我怎么就攤上這事惨远』靶ぃ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)是钥。 經(jīng)常有香客問(wèn)我缅叠,道長(zhǎng),這世上最難降的妖魔是什么肤粱? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任领曼,我火速辦了婚禮蛮穿,結(jié)果婚禮上毁渗,老公的妹妹穿的比我還像新娘。我一直安慰自己府适,他們只是感情好肺樟,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布么伯。 她就那樣靜靜地躺著,像睡著了一般誓篱。 火紅的嫁衣襯著肌膚如雪凯楔。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,829評(píng)論 1 290
  • 那天邻遏,我揣著相機(jī)與錄音虐骑,去河邊找鬼。 笑死糊饱,一個(gè)胖子當(dāng)著我的面吹牛颠黎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播夭坪,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼过椎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了亡鼠?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嗓奢,失蹤者是張志新(化名)和其女友劉穎浑厚,沒(méi)想到半個(gè)月后钳幅,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡诬乞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年钠导,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片票堵。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡悴势,死狀恐怖措伐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情侥加,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布矗蕊,位于F島的核電站,受9級(jí)特大地震影響朋魔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜孙援,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窥摄。 院中可真熱鬧础淤,春花似錦、人聲如沸币砂。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)掌桩。三九已至姑食,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間矢门,已是汗流浹背祟剔。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宣旱,地道東北人叛薯。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像组力,于是被迫代替她去往敵國(guó)和親抖拴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子腥椒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

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