日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

GBDT學(xué)習(xí)

 某某某1014 2014-09-11

一.GBDT簡(jiǎn)介

       GBDT(Gradient Boosting Decision Tree) 是一種迭代的決策樹算法,該算法由多棵決策樹組成,所有樹的結(jié)論累加起來(lái)做最終結(jié)果。它在被提出之初就和SVM一起被認(rèn)為是泛化能力(generalization)較強(qiáng)的算法。近些年更因?yàn)楸挥糜谒阉髋判虻臋C(jī)器學(xué)習(xí)模型而引起大家關(guān)注。

       GBDT是一個(gè)應(yīng)用很廣泛的算法,可以用來(lái)做分類、回歸。在很多的數(shù)據(jù)上都有不錯(cuò)的效果。GBDT這個(gè)算法還有一些其他的名字,比如說(shuō)MART(Multiple Additive Regression Tree),GBRT(Gradient Boost Regression Tree),Tree Net等。

二.相關(guān)基礎(chǔ)知識(shí)

2.1決策樹

決策樹分為兩大類,分類樹和回歸樹。分類樹是我們比較熟悉的決策樹,比如C4.5分類決策樹。分類樹用于分類標(biāo)簽值,如晴天/陰天、用戶性別、網(wǎng)頁(yè)是否是垃圾頁(yè)面。而回 歸樹用于預(yù)測(cè)實(shí)數(shù)值,如明天的溫度、用戶的年齡、網(wǎng)頁(yè)的相關(guān)程度。也就是分類樹的輸出是定性的,而回歸樹的輸出是定量的。

GBDT的核心在于累加所有樹的結(jié)果作為最終結(jié)果,比如對(duì)年齡的累加來(lái)預(yù)測(cè)年齡,而分類樹的結(jié)果顯然是沒辦法累加的,所以GBDT中的樹都是回歸樹,不是分類樹。

2.1.1 分類樹

以C4.5分類樹為例,C4.5分類樹在每次分枝時(shí),是窮舉每一個(gè)feature的每一個(gè)閾值,找到使得按照f(shuō)eature<=閾值,和feature>閾值分成的兩個(gè)分枝的熵最大的閾值(熵最大的概念可理解成盡可能每個(gè)分枝的男女比例都遠(yuǎn)離1:1),按照該標(biāo)準(zhǔn)分枝得到兩個(gè)新節(jié)點(diǎn),用同樣方法繼續(xù)分枝直到所有人都被分入性別唯一的葉子節(jié)點(diǎn),或達(dá)到預(yù)設(shè)的終止條件,若最終葉子節(jié)點(diǎn)中的性別不唯一,則以多數(shù)人的性別作為該葉子節(jié)點(diǎn)的性別。

2.1.2 回歸樹

回歸樹總體流程也是類似,區(qū)別在于,回歸樹的每個(gè)節(jié)點(diǎn)(不一定是葉子節(jié)點(diǎn))都會(huì)得一個(gè)預(yù)測(cè)值,以年齡為例,該預(yù)測(cè)值等于屬于這個(gè)節(jié)點(diǎn)的所有人年齡的平均值。分枝時(shí)窮舉每一個(gè)feature的每個(gè)閾值找最好的分割點(diǎn),但衡量最好的標(biāo)準(zhǔn)不再是最大熵,而是最小化均方差即(每個(gè)人的年齡-預(yù)測(cè)年齡)^2 的總和 / N。也就是被預(yù)測(cè)出錯(cuò)的人數(shù)越多,錯(cuò)的越離譜,均方差就越大,通過最小化均方差能夠找到最可靠的分枝依據(jù)。分枝直到每個(gè)葉子節(jié)點(diǎn)上人的年齡都唯一或者達(dá)到預(yù)設(shè)的終止條件(如葉子個(gè)數(shù)上限),若最終葉子節(jié)點(diǎn)上人的年齡不唯一,則以該節(jié)點(diǎn)上所有人的平均年齡做為該葉子節(jié)點(diǎn)的預(yù)測(cè)年齡。

2.2 梯度迭代(Gradient Boosting)

Boosting,迭代,即通過迭代多棵樹來(lái)共同決策。GBDT的核心就在于,每一棵樹學(xué)的是之前所有樹結(jié)論和的殘差,這個(gè)殘差就是一個(gè)加預(yù)測(cè)值后能得真實(shí)值的累加量。比如A的真實(shí)年齡是18歲,但第一棵樹的預(yù)測(cè)年齡是12歲,差了6歲,即殘差為6歲。那么在第二棵樹里我們把A的年齡設(shè)為6歲去學(xué)習(xí),如果第二棵樹真的能把A分到6歲的葉子節(jié)點(diǎn),那累加兩棵樹的結(jié)論就是A的真實(shí)年齡;如果第二棵樹的結(jié)論是5歲,則A仍然存在1歲的殘差,第三棵樹里A的年齡就變成1歲,繼續(xù)學(xué)習(xí)。

2.3 GBDT工作過程實(shí)例

比如年齡預(yù)測(cè),假設(shè)訓(xùn)練集只有4個(gè)人A,B,C,D,他們的年齡分別是14,16,24,26。其中A,B分別是高一和高三學(xué)生;C,D分別是應(yīng)屆畢業(yè)生和工作兩年的員工。若用一棵傳統(tǒng)的回歸決策樹來(lái)訓(xùn)練,會(huì)得到如圖所示結(jié)果。

           

如果使用GBDT來(lái)來(lái)訓(xùn)練,由于數(shù)據(jù)太少,我們限定葉子節(jié)點(diǎn)做最多有兩個(gè),并且限定只學(xué)兩棵樹。

        

A: 14歲高一學(xué)生,購(gòu)物較少,經(jīng)常問學(xué)長(zhǎng)問題;預(yù)測(cè)年齡A = 15 – 1 = 14

B: 16歲高三學(xué)生;購(gòu)物較少,經(jīng)常被學(xué)弟問問題;預(yù)測(cè)年齡B = 15 + 1 = 16

C: 24歲應(yīng)屆畢業(yè)生;購(gòu)物較多,經(jīng)常問師兄問題;預(yù)測(cè)年齡C = 25 – 1 = 24

D: 26歲工作兩年員工;購(gòu)物較多,經(jīng)常被師弟問問題;預(yù)測(cè)年齡D = 25 + 1 = 26 

注:圖1和圖2 最終效果相同,為何還需要GBDT呢?答案是過擬合。過擬合是指為了讓訓(xùn)練集精度更高,學(xué)到了很多“僅在訓(xùn)練集上成立的規(guī)律”,導(dǎo)致?lián)Q一個(gè)數(shù)據(jù)集當(dāng)前規(guī)律就不適用了。只要允許一棵樹的葉子節(jié)點(diǎn)足夠多,訓(xùn)練集總是能訓(xùn)練到100%準(zhǔn)確率的。在訓(xùn)練精度和實(shí)際精度(或測(cè)試精度)之間,后者才是我們想要真正得到的。

2.4 Shrinkage

Shrinkage(縮減)的思想認(rèn)為:每次走一小步逐漸逼近結(jié)果,要比每次邁一大步很快逼近結(jié)果的方式更容易避免過擬合。即它不完全信任每一個(gè)棵殘差樹,它認(rèn)為每棵樹只學(xué)到了結(jié)果的一小部分,累加的時(shí)候只累加一小部分,通過多學(xué)幾棵樹彌補(bǔ)不足。

假設(shè)yi表示第i棵樹上y的預(yù)測(cè)值,y(1~i)表示前i棵樹y的綜合預(yù)測(cè)值。

      y(i+1)= f(殘差(y(1~i)))    其中,殘差(y(1~i))=y真實(shí)值 - y(1~i)

      y_(1~i)= SUM(y_1,…, y_i)  

      引入Shrinkage后,y(1~i) = y(1~i-1)+step *yi

      step可以認(rèn)為是學(xué)習(xí)速度,越小表示學(xué)習(xí)越慢,越大表示學(xué)習(xí)越快。step一般都比較小,導(dǎo)致各個(gè)樹的殘差是漸變的而不是陡變的。

三. GBDT適用范圍

機(jī)器學(xué)習(xí)可以解決很多問題,其中最為重要的兩個(gè)是 回歸與分類。GBDT可用于回歸問題,相對(duì)logistic regression僅能用于線性回歸,GBDT能用于線性回歸和非線性回歸,GBDT的適用面非常廣。GBDT也可用于二分類問題(設(shè)定閾值,大于閾值為正例,反之為負(fù)例)。

四. 搜索引擎排序應(yīng)用RankNet

RankNet是基于樣本對(duì)級(jí)別(機(jī)器學(xué)習(xí)按照誤差函數(shù)的設(shè)計(jì)分為3種:點(diǎn)方式、對(duì)方式、列表方式)方法的一種典型的網(wǎng)頁(yè)排序算法,是利用梯度下降的原理,基于神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行模型的構(gòu)造和應(yīng)用的。

就像所有的機(jī)器學(xué)習(xí)一樣,搜索排序的學(xué)習(xí)也需要訓(xùn)練集,RankNet一般是用人工標(biāo)注實(shí)現(xiàn),即對(duì)每一個(gè)文檔給定一個(gè)分值(1,2,3,4),分值越高表示越相關(guān),越應(yīng)該排到前面。然而這些絕對(duì)的分值本身意義不大,例如很難說(shuō)1分和2分文檔的相關(guān)程度差異是1分和3分文檔相關(guān)程度差距的一半。相關(guān)度是一個(gè)很主觀的評(píng)判,人工無(wú)法做到這種定量標(biāo)注,這種標(biāo)準(zhǔn)也無(wú)法制定。但人工容易做到的是“A和B與查詢?cè)~都很相關(guān),但文檔A比文檔B更相關(guān),所以A比B的分高”。

利用RankNet進(jìn)行網(wǎng)頁(yè)排序,首先對(duì)訓(xùn)練樣本進(jìn)行轉(zhuǎn)化。

      

  利用神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。假設(shè)在訓(xùn)練樣本中對(duì)于查詢q存在<xi, xj>文檔序列對(duì),需要計(jì)算2個(gè)概率值P1和P2。

          P1這個(gè)概率是由神經(jīng)網(wǎng)絡(luò)模型計(jì)算出來(lái)的,函數(shù)如下

          P2=e^(o_ij )/(1+e^(o_ij ) )

          其中,對(duì)于文檔xi, xj,神經(jīng)網(wǎng)絡(luò)模型f對(duì)其打分分別為o_i=f(xi), o_j=f(xj),并記o_ij=o_i-o_j。

          模型f:R^d→R  R^d是文檔的特征空間,R是實(shí)數(shù)。

      對(duì)于概率P2,它表示真實(shí)存在的概率,標(biāo)記了文檔x_i和x_j的真實(shí)優(yōu)先關(guān)系。根據(jù)人工對(duì)文檔的打分,若文檔xi 與查詢q的相關(guān)度大于文檔xj,則記P2=1;反之記P2=0;若文檔xi 與查詢q的相關(guān)度等于文檔xj,則記P2=0.5。神經(jīng)網(wǎng)絡(luò)模型的目的是使計(jì)算出來(lái)的P1符合P2。

定義誤差函數(shù),使用交叉熵來(lái)計(jì)算誤差,文檔x_i 與x_j的交叉熵計(jì)算公式為:

     C_ij=-P2  log?〖P1 〗-(1-P2 )  log?〖P1 〗 

          = -P2 o_ij  + log?〖(1+e^(o_ij ))〗

      對(duì)于整個(gè)模型的誤差,只需要將所有文檔序?qū)Φ恼`差進(jìn)行求和就可以得到。得到誤差后,利用梯度下降的原理,計(jì)算出其梯度。然后利用BP型神經(jīng)網(wǎng)絡(luò),就可以對(duì)其樣本進(jìn)行訓(xùn)練(每次對(duì)兩個(gè)樣本的輸入進(jìn)行一次神經(jīng)網(wǎng)絡(luò)的權(quán)重調(diào)整)。最后,每個(gè)樣本通過Shrinkage累加都會(huì)得到一個(gè)最終分?jǐn)?shù),直接按分?jǐn)?shù)從大到小對(duì)樣本進(jìn)行排序。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多