国产第页,国产精品视频一区二区三区,国产精品网站夜色,久久艹影院,精品国产第一页,欧美影视一区二区三区,国产在线欧美日韩精品一区二区

統(tǒng)計學習方法——集成學習x

發(fā)布時間:2020-08-26 來源: 實習報告 點擊:

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

 這里我們從最簡單的集成學習 Bagging 開始講起,一直講到 GBDT 為止。

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

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

 具體算法描述如下圖:

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

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

  訓練分類器

 訓練分類器

 3:

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

 )

  ∑

  (

。

  ∑

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

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

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

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

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

 它的主要思想是,初始化時,所有的樣本都具有同權重,當進入第一個分類器分類后,挑選出其中錯誤的樣本,對其權重進行增加,對正確樣本權重減少,這樣保證下一個分類器對于錯誤的樣本能夠更好的修正。具體算法如下:

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

  基礎分類器個數(shù) T 過程:

 D1(x)=1m

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

 訓練分類器

  ,

 訓練分類器

  ,

  ?t=ht 的錯誤率

 的錯誤率

  的錯誤率

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

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

  這里是說如果錯誤率大于亂猜了,則不要繼續(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))

 ∑

  ∑

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

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

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

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

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

  計算殘差:

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

 使用殘差來擬合回歸樹

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

 更新提升樹

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

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

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

  ∑

  ∑

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

  計算殘差

  對

  計算殘差

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

 擬合一個回歸樹,得到第

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

  使用

 擬合一個回歸樹,得到第

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

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

  計算

 ∑

 這里是對每一個決策區(qū)域找到其最小的步長

 對

  計算

 ∑

  這里是對每一個決策區(qū)域找到其最小的步長

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

  ∑

  這里

 表示的是誤差,也是改進步長,其實是說加上屬于那一類別梯度的步長,這里

 只會屬于其中一個類別

 更新樹

  ∑

 這里

 表示的是誤差,也是改進步長,其實是說加上屬于那一類別梯度的步長,這里

 只會屬于其中一個類別

。3)得到回歸樹

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

  ∑∑

 ?

 ∑ ∑

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

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

相關熱詞搜索:學習方法 集成 統(tǒng)計

版權所有 蒲公英文摘 www.huhawan.com