日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

决策树(中)-集成学习、RF、AdaBoost、Boost Tree、GBDT

發布時間:2023/12/13 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 决策树(中)-集成学习、RF、AdaBoost、Boost Tree、GBDT 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考資料(要是對于本文的理解不夠透徹,必須將以下博客認知閱讀):

1.https://zhuanlan.zhihu.com/p/86263786

2.https://blog.csdn.net/liuy9803/article/details/80598652

3.https://blog.csdn.net/perfect1t/article/details/83684995

4.GBDT算法原理以及實例理解(!!)

5.Adaboost算法原理分析和實例+代碼(簡明易懂)(!!)

6.集成學習之Adaboost算法原理小結(!!劉建平,大牛博客)

7.gbdt、xgb、lgb、cat面經整理——from牛客(必須掌握)

目錄

1.集成學習概念

2.Bagging

3.Random Forest(RF)

4.Boosting

5.Adaboost

6.Boosting tree(提升樹)

7.GBDT

8.從偏差和方差的角度理解集成學習


一、集成學習相關知識(Ensemble learning)

1. 集成學習(Ensemble learning)是使用一系列學習器進行學習,并使用某種規則把各個學習結果進行整合,從而獲得比單個學習器顯著優越的泛化性能。它不是一種單獨的機器學習算法,而更像是一種優化策略,其目的在于使得集成模型達到減小方差(bagging)減小偏差(boosting)改進預測(stacking)的效果。

2. 根據集成學習的概念以及一般結構,我們能都發現集成學習的兩個核心問題

如何選擇若干個體學習器?怎么訓練每個算法?
選擇何種策略將這些個體學習器集成為一個強學習器?

2. 集成學習的一般結構是,先產生一組個體學習器,再用某種結合策略將它們結合起來。

3. 集成學習的成功在于保證個體學習器的多樣性(好而不同),且集成不穩定的算法也能夠得到一個比較明顯的性能提升。

4.根據個體學習器的生成方式,目前的集成學習方法大致可以分為兩類:(也有人把集成學習方法分為3類[Bagging、Boosting、stacking],stacking其實可以看成是一種集成學習方法,也可以看成是一種特殊的結合策略)

個體學習器間存在強依賴關系、必須串行生成的序列化方法,代表為Boosting;
個體學習器間不存在強依賴關系、可同時生成的并行化方法,代表為Bagging和隨機森林。

5.集成學習優勢在于:

個體學習器之間存在一定的差異性,這會導致分類邊界不同,也就是說可能存在錯誤。那么將多個個體學習器合并后,就可以得到更加合理的邊界,減少整體的錯誤率,實現更好的效果;
對于數據集過大或過小的情況,可以分別進行劃分和有放回的操作,產生不同的數據子集,然后使用數據子集訓練不同的學習器,最終再合并成為一個強學習器;
如果數據的劃分邊界過于復雜,使用線性模型很難描述情況,那么可以訓練多個模型,然后再進行模型的融合;
對于多個異構的特征集的時候,很難直接融合,那么可以考慮使用每個數據集構建一個分類模型,然后將多個模型融合。

二、Bagging(裝袋)

1.概念

Bagging 是一種個體學習器之間不存在強依賴關系可同時生成并行式集成學習方法。
Bagging 基于自助采樣法(bootstrap sampling),也叫有放回重采樣法.即給定包含m個樣本的數據集,先隨機從樣本中取出一個樣本放入采樣集中,再把該樣本返回初始數據集,使得下次采樣時該樣本仍可以被選中,這樣,經過m次隨機采樣操作,就可以得到包含m個樣本的采樣集,初始數據集中有的樣本多次出現,有的則未出現。其中,初始訓練集中約有63.2%的樣本出現在采樣集中。
為了使基學習器盡可能的具有較大的差異(好而不同,保持多樣性),對訓練樣本進行采樣以產生若干個不同的子集,對每一個子集訓練一個基學習器,然后結合策略進行集成的方法。為了不讓每個基學習器效果太差,這些子集不能完全不同,因此使用子集之間相互有交疊的采樣方法,即bootstrap方法(自助采樣法)。

自助采樣法:對 m 個樣本的訓練集,有放回的采樣 m 次;此時,樣本在 m 次采樣中始終沒被采樣的概率約為 0.368,即每次自助采樣只能采樣到全部樣本的 63% 左右。

2.流程圖

3.算法流程

(1)給定包含m個樣本的數據集,隨機取出一個樣本放入采樣集中,再把它放回到原始數據集中,重復m次,得到含m個樣本的采樣集。

(2)進行同樣的操作進行T次得到T個每個含m個樣本的采樣集,基于每個采樣集訓練一個基學習器。

(3)再將基學習器進行組合,一般使用多數投票或求均值的方式來統計最終的分類結果。

4.Bagging的優點

訓練一個 Bagging集成與直接使用基分類器算法訓練一個學習器的復雜度同階,說明Bagging是一個高效的集成學習算法。
此外,與標準的AdaBoost算法只適用于二分類問題不同,Bagging能不經過修改用于多分類、回歸等任務。
由于每個基學習器只使用63.2%的數據,所以剩下36.8%的數據可以用來做驗證集來對泛化性能進行“包外估計”。
從偏差-方差的角度來說,Boosting主要關注減小偏差而Bagging主要關注降低方差,也就說明boosting在弱學習器上表現更好,而降低方差可以減小過擬合的風險,所以Bagging通常在強分類和復雜模型上表現得很好。(這能否說明Bagging的基學習器選取強學習器效果會更好呢??)

三、Random Forest(RF)(隨機森林=Bagging+決策樹)

1.概念

隨機森林是bagging的擴展體。
RF在以決策樹為基學習器,通過Bagging自助采樣算法采樣訓練樣本,進一步在決策樹的訓練過程中引入了隨機屬性選擇。(為了保證多樣性)
具體地,傳統決策樹在選擇劃分屬性時是在當前結點的屬性集合(假定有d個屬性)中選擇一個最優屬性,而在RF上,對基決策樹的每個結點,先從該結點的屬性集中隨機選擇其中的k個屬性組成屬性集,然后從該屬性集中選擇最優的劃分屬性,一般情況下,推薦。

2.隨機森林隨機的意義表現在哪?

隨機森林中隨機主要體現在對樣本的隨機采樣以及引入了隨機屬性選擇。
不管是對樣本的隨機采樣,還是對特征的抽樣,甚至對切分點的隨機劃分,都是為了引入偏差,使基分類器之間具有明顯的差異,相互獨立,提升模型的多樣性,使模型不會受到局部樣本的影響,從而減少方差,提升模型的泛化能力。

3.隨機森林的優缺點

能夠處理很高維度的數據,并且不用做特征選擇;處理高維數據,處理特征遺失數據,處理不平衡數據是隨機森林的長處。
隨機森林可用于回歸問題和分類問題,取決于隨機森林的每顆cart樹是分類樹還是回歸樹。;
容易做成并行化方法,速度快;
可以進行可視化展示,便于分析。
當數據噪聲比較大時,會產生過擬合現象;
當隨機森林中的決策樹個數很多時,訓練時需要的空間和時間會比較大
隨機森林中還有許多不好解釋的地方,有點算是黑盒模型

4.隨機森林與Bagging算法的比較

兩者的收斂性相似,但RF的起始性能相對較差,特別只有一個基學習器時。隨著基學習器數量的增加,隨機森林通常會收斂到更低的泛化誤差。
隨機森林的訓練效率常優于Bagging,因為Bagging是“確定型”決策樹,而隨機森林使用“隨機型”決策樹。

四、Boosting(提升)

1.概念

(1)Boosting是一簇可將弱學習器提升為強學習器的算法,其基于串行策略:基學習器之間存在依賴關系,新的學習器需要根據上一個學習器生成,每次學習都會使用全部訓練樣本。

(2)其工作機制為:先從初始訓練集訓練出一個基學習器,再根據基學習器的表現對樣本分布進行調整,使得先前的基學習器做錯的訓練樣本在后續收到更多的關注,然后基于調整后的樣本分布來訓練下一個基學習器;如此重復進行,直至基學習器數目達到實現指定的值T,或整個集成結果達到退出條件,然后將這些學習器進行加權結合。正確率越高的基學習器的獲得的權重越大。Boosting可以用于分類和回歸問題。

(3)常見的基于Boosting模型的算法有:AdaBoost、Boosting Tree、GBDT、XGBoost。

2.流程圖

3.Boosting的特點

(1)從方差-偏差分解的角度看,Boosting主要關注降低偏差,因此Boosting能基于泛化性能相當弱的學習器構建出很強的集成。

(2)Boosting對樣本分布進行調整主要有兩種方法:

重新賦權法(re-weighting):在每一輪學習中,根據樣本分布為每個訓練樣本重新賦予一個權重值。
重采樣法(re-sampling):對于無法接受帶權樣本的基學習算法,在每一輪學習中,根據樣本分布對訓練集重新進行采樣,再用重采樣得到的樣本集對基學習器進行訓練。

4.Bagging和Boosting的區別

(1) 樣本選擇上:

Bagging:訓練集是在原始集中有放回選取的,從原始集中選出的各輪訓練集之間是獨立的。

Boosting:每一輪的訓練集不變,只是訓練集中每個樣例在分類器中的權重發生變化。而權值是根據上一輪的分類結果進行調整。

(2) 樣例權重:

Bagging:使用均勻取樣,每個樣例的權重相等

Boosting:根據錯誤率不斷調整樣例的權值,錯誤率越大則權重越大。

(3) 預測函數:

Bagging:所有預測函數的權重相等。

Boosting:每個弱分類器都有相應的權重,對于分類誤差小的分類器會有更大的權重。

(4) 并行計算:

Bagging:各個預測函數可以并行生成

Boosting:各個預測函數只能順序生成,因為后一個模型參數需要前一輪模型的結果。

(5)為什么說bagging是減少variance,而boosting是減少bias(高頻面試)

Bagging中每個基學習器都是強學習器,主要關注的問題是降低方差;Boosting中每個基學習器都是弱學習器,主要關注的問題是降低偏差。具體解答分析見7.從偏差和方差的角度理解集成學習

五、AdaBoost(只對AdaBoost做了簡單的推導,具體推導細節請看統計學習方法)

1.概念

(1)AdaBoost [ adaptive boosting(自適應boosting) ] 是Boosting中的經典算法,其主要應用于二分類問題,也可以用于多分類以及回歸問題。

(2)AdaBoost算法思路:如何改變每一輪訓練數據的權重?Adaboost 算法采用調整樣本權重的方式來對樣本分布進行調整,即提高前一輪個體學習器錯誤分類的樣本的權重,而降低那些正確分類的樣本的權重,這樣就能使得錯誤分類的樣本可以受到更多的關注,從而在下一輪中可以正確分類,使得分類問題被一系列的弱分類器“分而治之”。如何將弱分類器組合成一個強分類器?對于組合方式,AdaBoost采用加權多數表決的方法,具體地,加大分類誤差率小的若分類器的權值,減小分類誤差率大的若分類器的權值,從而調整他們在表決中的作用。

2.算法流程(摘自西瓜書與統計學習方法)


3.結合一個例子來理解整個算法的流程,這個例子摘自李航《統計學習方法》:

4.AdaBoost算法的理解

AdaBoost算法是模型為加法模型損失函數為指數函數學習算法為前向分步算法的二分類算法。AdaBoost算法中最重要的應該就是樣本權重更新公式的推導。

加法模型:最終的強分類器是由若干個弱分類器加權平均得到的。

前向分布學習算法:算法是通過一輪輪的弱學習器學習,利用前一個弱學習器的結果來更新后一個弱學習器的訓練集權重。第 k 輪的強學習器為:

定義損失函數為 n 個樣本的指數損失函數:

利用前向分布學習算法的關系可以得到:

因為已知,所以令,隨著每一輪迭代而將這個式子帶入損失函數,損失函數轉化為:

我們求,可以得到:

將帶入損失函數,并對求導,使其等于 0,則就得到了:

其中,即為我們前面的分類誤差率。

最后看樣本權重的更新。利用和,即可得:

這樣就得到了樣本權重更新公式。

5.AdaBoost優缺點

分類精度高;
可以用各種回歸分類模型來構建弱學習器,非常靈活;
不容易發生過擬合。
對異常點敏感,異常點會獲得較高權重。

六、Boosting tree(提升樹)(年齡例子)

1.概念

提升樹是以分類樹或回歸樹為基本分類器的提升方法。Boosting Tree被認為是統計學習中性能最好的方法之一。
提升方法采用加法模型(即基函數的線性組合)前向分步算法以決策樹為基函數的提升方法稱為提升樹(boosting tree)。
對于分類問題決策樹是二叉分類樹,對回歸問題決策樹是二叉回歸樹。
從某種角度可以理解為Boosting tree = Adaboost + tree

2.提升樹模型表示

其中,表示決策樹;為決策樹的參數;為決策樹的個數。

3.多種類型提升樹算法

提升樹對不同問題有不同的提升樹學習算法,其主要區別在于使用的損失函數不同。

(1)用平方誤差損失函數的回歸問題。

(2)用指數損失函數的分類問題。

(3)一般損失函數的一般決策問題。(引出了GB[Gradient Boosting 梯度提升]算法,GB+決策樹(回歸樹)就得到了GBDT)

4.用于分類問題的提升樹

對于二分類問題,Boosting Tree算法只需要將AdaBoost算法中的基分類器限制為CART二分類樹即可。

從這個角度可以反應出,在二分類問題中 Boosting Tree = AdaBoost + Tree(二分類樹)

5.用于回歸問題的提升樹(推導過程,詳細過程見統計學習方法)

(1)把輸入空間X劃分為J個互不相交的區域,并且在每個區域上確定的輸出常量,那么樹可以表示為如下:

其中,參數表示樹的區域劃分和各個區域上的常數。J是回歸樹的復雜度即葉子結點個數。

(2)回歸問題提升樹使用以下前向分布算法:

在第m步,給定當前模型,需要求解

得到,即第m棵樹的參數。

(3)因為為回歸問題,所以采用平方誤差損失函數,所以

由上式容易知道,為使損失函數最小,則需要

即需要擬合r,其中,

當前模型擬合數據的殘差(residual),所以對于回歸問題的提升樹算法來說,只需要簡單的擬合當前模型的殘差。


算法流程如下圖所示:(摘自統計學習方法)

李航的《統計學習方法》中也給出了相應的例子來說明整個解決回歸問題提升樹的算法流程。由于題目太長,在這我就不粘貼出來了,有需要自己去看!

七、GBDT

GBDT = GB + DT + Shringkage(一個重要演變),在了解GBDT之前,首先讓我了解一下GB(Gradient Boosting,梯度提升)算法以及DT(Decision Tree)。

1.DT(Decision Tree)

首先,GBDT使用的決策樹是CART回歸樹無論是處理回歸問題還是二分類以及多分類,GBDT使用的決策樹通通都是都是CART回歸樹。為什么不用CART分類樹呢?因為GBDT每次迭代要擬合的是梯度值,是連續值所以要用回歸樹。
對于回歸樹算法來說最重要的是尋找最佳的劃分點,那么回歸樹中的可劃分點包含了所有特征的所有可取的值。在分類樹中最佳劃分點的判別標準是熵或者基尼系數,都是用純度來衡量的,但是在回歸樹中的樣本標簽是連續數值,所以再使用熵之類的指標不再合適,取而代之的是平方誤差,它能很好的評判擬合程度


Cart回歸樹生成算法(用于回歸問題的Boosting Tree也需要用到Cart回歸樹生成算法)(有關Cart回歸樹以及分類樹的詳細知識可查看博主的上一篇博客)

2.GB(Gradient Boosting)

梯度提升樹(Grandient Boosting)是提升樹(Boosting Tree)的一種改進算法。

提升樹利用加法模型與前向分步算法實現學習的優化過程,當損失函數是平方損失和指數損失函數時,梯度提升樹每一步優化是很簡單的,但是對于一般損失函數而言,往往每一步優化起來不那么容易,針對這一問題,Friedman提出了梯度提升樹算法,這是利用最速下降的近似方法,其關鍵是利用損失函數的負梯度作為提升樹算法中的殘差的近似值。那么負梯度長什么樣呢?第t輪的第i個樣本的損失函數的負梯度為:

此時不同的損失函數將會得到不同的負梯度,如果選擇平方損失

則負梯度為

從上述推導過程中,可以看出當損失函數為平方損失函數時,損失函數的負梯度 = 殘差。但是在GBDT中,損失函數一般不會選擇平方損失函數,所以我們利用損失函數的負梯度作為提升樹算法中的殘差的近似值。

3.GBDT算法

介紹完了GB和DT,將兩者結合起來就得到GBDT算法。GBDT(Gradient Boosting Decision Tree)是一種迭代的決策樹算法,該算法由多棵決策樹組成,從名字中我們可以看出來它是屬于 Boosting 策略。GBDT 是被公認的泛化能力較強的算法。

首先必須明確一點 ,GBDT 使用的是絕對損失或者 Huber 損失函數,而不是平方損失函數(網上很多博客把GBDT的損失函數當作平方損失函數,這是錯誤的)

GBDT算法的整個流程:

通常在2(d)步驟時,GBDT會引入縮減(Shrinkage)思想(正則化的一種)

Shrinkage 的思想認為,每走一小步逐漸逼近結果的效果要比每次邁一大步很快逼近結果的方式更容易避免過擬合。即它并不是完全信任每一棵殘差樹。

Shrinkage 不直接用殘差修復誤差,而是只修復一點點,把大步切成小步。本質上 Shrinkage 為每棵樹設置了一個 weight,累加時要乘以這個 weight,當 weight 降低時,基模型數會配合增大。

4.如何使用GBDT解決二分類問題?

在梯度提升決策樹GBDT中,通過定義不同的損失函數,可以完成不同的學習任務,二分類是機器學習中一類比較重要的分類算法,對于分類問題,一般將損失函數改為指數損失(二分類)或者對數似然損失(多分類)。在二分類中,其損失函數為:

其余過程見:深入理解GBDT二分類算法(此篇博客的博主是個大牛!@!!!!!!!)

5.GBDT正則化

和Adaboost一樣,我們也需要對GBDT進行正則化,防止過擬合。GBDT的正則化主要有三種方式。

(1)第一種是和Adaboost類似的正則化項,即步長(learning rate)。定義為ν,對于前面的弱學習器的迭代,如果我們加上了正則化項,則有

ν的取值范圍為0<ν≤1。對于同樣的訓練集學習效果,較小的ν意味著我們需要更多的弱學習器的迭代次數。通常我們用步長和迭代最大次數一起來決定算法的擬合效果。

(2)第二種正則化的方式是通過子采樣比例(subsample)。取值為(0,1]。注意這里的子采樣和隨機森林不一樣,隨機森林使用的是放回抽樣,而這里是不放回抽樣。如果取值為1,則全部樣本都使用,等于沒有使用子采樣。如果取值小于1,則只有一部分樣本會去做GBDT的決策樹擬合。選擇小于1的比例可以減少方差,即防止過擬合,但是會增加樣本擬合的偏差,因此取值不能太低。推薦在[0.5, 0.8]之間。使用了子采樣的GBDT有時也稱作隨機梯度提升樹(Stochastic Gradient Boosting Tree, SGBT)。由于使用了子采樣,程序可以通過采樣分發到不同的任務去做boosting的迭代過程,最后形成新樹,從而減少弱學習器難以并行學習的弱點。

(3)第三種是對于弱學習器即CART回歸樹進行正則化剪枝。在決策樹原理篇里我們已經講過,這里就不重復了。

6.GBDT的優缺點

GBDT主要的優點有:

可以靈活處理各種類型的數據,包括連續值和離散值。
在相對少的調參時間情況下,預測的準確率也可以比較高。這個是相對SVM來說的。
使用一些健壯的損失函數,對異常值的魯棒性非常強。比如 Huber損失函數和Quantile損失函數。

GBDT的主要缺點有:

由于弱學習器之間存在依賴關系,難以并行訓練數據。不過可以通過自采樣的SGBT來達到部分并行。

7.與Adaboost的對比

相同點

都是 Boosting 家族成員,使用弱分類器;
都使用前向分布算法;

不同點:

迭代思路不同:Adaboost 是通過提升錯分數據點的權重來彌補模型的不足(利用錯分樣本),而 GBDT 是通過算梯度來彌補模型的不足(利用殘差);
損失函數不同:AdaBoost 采用的是指數損失,GBDT 使用的是絕對損失或者 Huber 損失函數;

8.與Boosting Tree(提升樹)的卻別

在擬合值方面,GBDT用負梯度代替了BT中的殘差,其本質是用泰勒一階展開式近似值。
BT中,葉子節點的輸出取平均值(由CART回歸樹的建立過程決定);而GBDT葉子節點的輸出需要擬合損失函數最好的輸出。

9.GBDT與RF的區別

組成隨機森林的樹可以是分類樹,也可以是回歸樹;而GBDT只由回歸樹組成,GBDT的會累加所有樹的結果,而這種累加是無法通過分類完成的,因此GBDT的樹都是CART回歸樹,而不是分類樹(盡管GBDT調整后也可以用于分類但不代表GBDT的樹為分類樹)
組成隨機森林的樹可以并行生成;而GBDT只能是串行生成
對于最終的輸出結果而言,隨機森林采用多數投票或簡單平均等;而GBDT則是將所有結果累加起來,或者加權累加起來(存在學習率)
隨機森林對異常值不敏感,GBDT對異常值非常敏感
隨機森林對訓練集一視同仁,GBDT是基于權值的弱分類器的集成
隨機森林是通過減少模型方差提高性能,GBDT是通過減少模型偏差提高性能,但是xgb引入了正則項和列采樣等等正則化手段之后,可以在少量增加偏差的情況下大幅度縮減模型的方差。

八、從偏差和方差的角度理解集成學習

8.1 集成學習的偏差與方差

偏差(Bias)描述的是預測值和真實值之差;方差(Variance)描述的是預測值作為隨機變量的離散程度。放一場很經典的圖:

模型的偏差與方差

偏差:描述樣本擬合出的模型的預測結果的期望與樣本真實結果的差距,要想偏差表現的好,就需要復雜化模型,增加模型的參數,但這樣容易過擬合,過擬合對應上圖的 High Variance,點會很分散。低偏差對應的點都打在靶心附近,所以喵的很準,但不一定很穩;
方差:描述樣本上訓練出來的模型在測試集上的表現,要想方差表現的好,需要簡化模型,減少模型的復雜度,但這樣容易欠擬合,欠擬合對應上圖 High Bias,點偏離中心。低方差對應就是點都打的很集中,但不一定是靶心附近,手很穩,但不一定瞄的準。

我們常說集成學習中的基模型是弱模型,通常來說弱模型是偏差高(在訓練集上準確度低)方差小(防止過擬合能力強)的模型,但并不是所有集成學習框架中的基模型都是弱模型。Bagging 和 Stacking 中的基模型為強模型(偏差低,方差高),而Boosting 中的基模型為弱模型(偏差高,方差低)。

在 Bagging 和 Boosting 框架中,通過計算基模型的期望和方差我們可以得到模型整體的期望和方差。為了簡化模型,我們假設基模型的期望為,方差,模型的權重為,兩兩模型間的相關系數相等。由于 Bagging 和 Boosting 的基模型都是線性組成的,那么有:

模型總體期望:

模型總體方差(公式推導參考協方差的性質,協方差與方差的關系):

模型的準確度可由偏差和方差共同決定:

8.2 Bagging 的偏差與方差

對于 Bagging 來說,每個基模型的權重等于 1/m 且期望近似相等,故我們可以得到:

通過上式我們可以看到:

整體模型的期望等于基模型的期望,這也就意味著整體模型的偏差和基模型的偏差近似。
整體模型的方差小于等于基模型的方差,當且僅當相關性為 1 時取等號,隨著基模型數量增多,整體模型的方差減少,從而防止過擬合的能力增強,模型的準確度得到提高。但是,模型的準確度一定會無限逼近于 1 嗎?并不一定,當基模型數增加到一定程度時,方差公式第一項的改變對整體方差的作用很小,防止過擬合的能力達到極限,這便是準確度的極限了。

在此我們知道了為什么 Bagging 中的基模型一定要為強模型,如果 Bagging 使用弱模型則會導致整體模型的偏差提高,而準確度降低。

Random Forest 是經典的基于 Bagging 框架的模型,并在此基礎上通過引入特征采樣和樣本采樣來降低基模型間的相關性,在公式中顯著降低方差公式中的第二項,略微升高第一項,從而使得整體降低模型整體方差。

8.3 Boosting 的偏差與方差

對于 Boosting 來說,由于基模型共用同一套訓練集,所以基模型間具有強相關性,故模型間的相關系數近似等于 1,針對 Boosting 化簡公式為:

通過觀察整體方差的表達式我們容易發現:

整體模型的方差等于基模型的方差,如果基模型不是弱模型,其方差相對較大,這將導致整體模型的方差很大,即無法達到防止過擬合的效果。因此,Boosting 框架中的基模型必須為弱模型。
此外 Boosting 框架中采用基于貪心策略的前向加法,整體模型的期望由基模型的期望累加而成,所以隨著基模型數的增多,整體模型的期望值增加,整體模型的準確度提高。

基于 Boosting 框架的 Gradient Boosting Decision Tree 模型中基模型也為樹模型,同 Random Forrest,我們也可以對特征進行隨機抽樣來使基模型間的相關性降低,從而達到減少方差的效果。

總結

以上是生活随笔為你收集整理的决策树(中)-集成学习、RF、AdaBoost、Boost Tree、GBDT的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。