东方亚洲欧a∨人在线观看|欧美亚洲日韩在线播放|日韩欧美精品一区|久久97AV综合

        統(tǒng)計(jì)學(xué)習(xí)方法——集成學(xué)習(xí)x

        發(fā)布時(shí)間:2020-08-26 來源: 實(shí)習(xí)報(bào)告 點(diǎn)擊:

         統(tǒng)計(jì)學(xué)習(xí)方法—— 集成學(xué)習(xí) 集成學(xué)習(xí)作為當(dāng)今性能最好的多模型分類器,我們必須要了解它一下。

         這里我們從最簡(jiǎn)單的集成學(xué)習(xí) Bagging 開始講起,一直講到 GBDT 為止。

         1. 集成學(xué)習(xí) 集成學(xué)習(xí)是多模型學(xué)習(xí)的一種,它是集成多個(gè)弱分類器來進(jìn)行決策。就是“三個(gè)臭皮匠賽過諸葛亮”,但是一般來講是賽不了的,為什么呢?首先如果三個(gè)臭皮匠是三胞胎,那么三個(gè)臭皮匠和一個(gè)臭皮匠是無異的,另外,如何把這三個(gè)決策統(tǒng)一起來是另外一個(gè)問題。因此我們從這兩方面來入手講解集成學(xué)習(xí)。

         2.Bagging bagging 的想法非常簡(jiǎn)單,假設(shè)我們有 T 個(gè)分類器,每個(gè)分類器需要 m 個(gè)訓(xùn)練樣本。我們只需要使用自助采樣法(有放回采樣)獲取到這 m 個(gè)樣本即可。這樣我們就有了 T 個(gè)包含了 m 個(gè)樣本的訓(xùn)練集,來訓(xùn)練 T 個(gè)分類器。最終對(duì)同一樣本進(jìn)行簡(jiǎn)單的投票決策即可。

         具體算法描述如下圖:

         輸入:訓(xùn)練集Di={(x1,y1),(x2,y2),..,(xm,ym)}

          基礎(chǔ)分類器個(gè)數(shù) T 過程 1:for t=1,2,3…,T do 2ht=訓(xùn)練分類器(Di)

          訓(xùn)練分類器

         訓(xùn)練分類器

         3:

         H(x)=argmaxy∈Y∑t=1TI(ht(x)=y) (

        。

          ∑

          (

        。

          ∑

          這就是最簡(jiǎn)單的 bagging,它就是兼聽則明的一個(gè)典型代表,但是它只能去減少方差,但是不能夠保證最終的結(jié)果更加正確,萬一所有的大臣串通一氣,你就算聽取了所有大臣的意見,仍然是一個(gè)昏君。

         3.RandomForest 隨機(jī)森林是在 bagging 上的一個(gè)改進(jìn),在 bagging 中,我們只去擾動(dòng)了樣本,也就雖然每個(gè) T 的訓(xùn)練樣本是服從同分布的,但是樣本的個(gè)體是不同的,也就是說,我們假設(shè)每個(gè) T 都是一個(gè)游客在看一座山,雖然每個(gè)人都是獨(dú)立的看,但是都是在同一方向上看的,因此差異性不會(huì)特別大。而隨機(jī)森林則加入了另一個(gè)擾動(dòng),那就是訓(xùn)練模型的不同,也就是說每個(gè)人都在不同的角度看同一座山,這樣描述的會(huì)更加準(zhǔn)確。

         這里我們主要講解一下結(jié)合的策略。常規(guī)來講,主要有這么幾種策略:多數(shù)表決、平均值、加權(quán)表決/平均值。多數(shù)表決,就是一人一票,每人都平等對(duì)待,然后得票多的結(jié)果獲勝。平均值則是把所有人的決策取平均,加權(quán)的話,就是把每個(gè)分類器不平等對(duì)待。另外,如果每個(gè)分類器性能差異比較大的時(shí)候,建議使用多數(shù)表決。每個(gè)分類器差異較小的時(shí)候,建議使用平均值。

         另一方面,還有一個(gè) Stacking 算法,它比較特殊,它會(huì)先使用一些初級(jí)學(xué)習(xí)器,然后生成一個(gè)新數(shù)據(jù)集再來進(jìn)行一次訓(xùn)練。新的數(shù)據(jù)集主要是添加了初級(jí)學(xué)習(xí)器的預(yù)測(cè)結(jié)果,然后再訓(xùn)練次級(jí)學(xué)習(xí)器,這種方法比較適用于多響應(yīng)線性回歸。

         4.Boosting boosting 和 bagging 的思路完全不同,它是使用同一個(gè)訓(xùn)練集,但是每個(gè)分類器都是有順序的,當(dāng)前分類器依賴于前一個(gè)分類器的性能表現(xiàn)。就目前實(shí)現(xiàn)而言boosting 中最具代表的是 AdaBoosting,它主要用于二分類,并且維護(hù)一個(gè)樣本權(quán)重表來保證模型的性能。

         它的主要思想是,初始化時(shí),所有的樣本都具有同權(quán)重,當(dāng)進(jìn)入第一個(gè)分類器分類后,挑選出其中錯(cuò)誤的樣本,對(duì)其權(quán)重進(jìn)行增加,對(duì)正確樣本權(quán)重減少,這樣保證下一個(gè)分類器對(duì)于錯(cuò)誤的樣本能夠更好的修正。具體算法如下:

         輸入:訓(xùn)練集Di={(x1,y1),(x2,y2),..,(xm,ym)}

          基礎(chǔ)分類器個(gè)數(shù) T 過程:

         D1(x)=1m

          for t=1,2,…,T do ht=訓(xùn)練分類器(D,Dt)

         訓(xùn)練分類器

          ,

         訓(xùn)練分類器

          ,

          ?t=ht 的錯(cuò)誤率

         的錯(cuò)誤率

          的錯(cuò)誤率

         if?t>0.5thenbreak//這里是說如果錯(cuò)誤率大于亂猜了,則不要繼續(xù)了

         這里是說如果錯(cuò)誤率大于亂猜了,則不要繼續(xù)了

          這里是說如果錯(cuò)誤率大于亂猜了,則不要繼續(xù)了

         αt=12ln(1−?t?t)

         Dt+1(x)=Dt(x)×exp(−αtf(x)ht(x))Zt

          end for H(x)=sign(∑Tt=1αtht(x))

         ∑

          ∑

         從上面可以看出,它是一個(gè)自適應(yīng)提升模型,首先一點(diǎn)就是它的第 i 次的性能會(huì)隨著第 i-1 次而不斷的調(diào)整,最后取得最優(yōu)值。但是這還不是最后的優(yōu)化方案,因?yàn)檫有更優(yōu)秀的 BoostingTree。

         5.BoostingTree 提升樹主要有兩點(diǎn)的提升,第一就是對(duì)于 Boosting 的每一輪迭代,它的目標(biāo)任務(wù)是不同的,每次都是記錄殘差,而不是真正的標(biāo)簽。也就是說除了第一棵樹是正常分類的,后面的樹都是不斷修正之前的樹的預(yù)判的,從而達(dá)到整體預(yù)判效果,具體來講,它的每個(gè)樹是 CART 樹,具體的算法如下:

         輸入:訓(xùn)練數(shù)據(jù)集 T 輸出:提升樹 fM(x).

          (1) 初始化 f0(x)=0

          (2)對(duì) m=1,2,…,M 計(jì)算殘差:rmi=yi−fm−1(xi),i=1,2,...,N 計(jì)算殘差:

          計(jì)算殘差:

          使用殘差來擬合回歸樹Tm 使用殘差來擬合回歸樹

         使用殘差來擬合回歸樹

         更新提升樹fm(x)=fm−1(x)+Tm 更新提升樹

         更新提升樹

         (3)得到回歸提升樹 fM(x)

          那么,什么時(shí)候停止呢,使用平方和誤差低于某一值時(shí),就認(rèn)為擬合成功了。但是這還不是最終的結(jié)果,最終的為 GBDT 6.GBDT GBDT 較上面更新之處在于每次修剪的幅度不同。上面講的誤差使用的是平方損失誤差,而 GBDT 則是使用梯度來解決。算法如下 輸入:訓(xùn)練集 T,損失函數(shù) L 輸出:回歸樹 f(x) (1)初始化

         f0(x)=argminc∑i=1NL(yi,A)

          ∑

          ∑

          (2)對(duì)于 m=1,2,…,M 對(duì) 1,2,...,N,計(jì)算殘差rmi=−[∂L(yi,f(xi))∂f(xi)]f(x)=fm−1(x) 對(duì)

          計(jì)算殘差

          對(duì)

          計(jì)算殘差

          使用 rmi 擬合一個(gè)回歸樹,得到第 n 棵樹的葉節(jié)點(diǎn)區(qū)域Rmj 使用

         擬合一個(gè)回歸樹,得到第

         棵樹的葉節(jié)點(diǎn)區(qū)域

          使用

         擬合一個(gè)回歸樹,得到第

         棵樹的葉節(jié)點(diǎn)區(qū)域

         對(duì) j=1,2,...,J,計(jì)算 cmj=argminc∑xi∈RmjL(yi,fm−1(xi)+A)//這里是對(duì)每一個(gè)決策區(qū)域找到其最小的步長(zhǎng) 對(duì)

          計(jì)算

         ∑

         這里是對(duì)每一個(gè)決策區(qū)域找到其最小的步長(zhǎng)

         對(duì)

          計(jì)算

         ∑

          這里是對(duì)每一個(gè)決策區(qū)域找到其最小的步長(zhǎng)

         更新樹 fm(x)=fm−1(x)+∑j=1JcmjI(x∈Rmj)//這里 cmj 表示的是誤差,也是改進(jìn)步長(zhǎng),其實(shí)是說加上屬于那一類別梯度的步長(zhǎng),這里 x 只會(huì)屬于其中一個(gè)類別. 更新樹

          ∑

          這里

         表示的是誤差,也是改進(jìn)步長(zhǎng),其實(shí)是說加上屬于那一類別梯度的步長(zhǎng),這里

         只會(huì)屬于其中一個(gè)類別

         更新樹

          ∑

         這里

         表示的是誤差,也是改進(jìn)步長(zhǎng),其實(shí)是說加上屬于那一類別梯度的步長(zhǎng),這里

         只會(huì)屬于其中一個(gè)類別

        。3)得到回歸樹

         f^(x)=fM(x)=∑m=1M∑j=1JcmjI(x∈Rmj) ?

          ∑∑

         ?

         ∑ ∑

         網(wǎng)上居然沒有一個(gè)人對(duì)這些代碼進(jìn)行解讀一下!太難了!

         7. 總結(jié) 今天,我們主要梳理了一遍集成學(xué)習(xí)的方法,從最基層的 Bagging 到最頂層的GBDT。

        相關(guān)熱詞搜索:學(xué)習(xí)方法 集成 統(tǒng)計(jì)

        版權(quán)所有 蒲公英文摘 smilezhuce.com