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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

常用决策树集成模型Random Forest、Adaboost、GBDT详解

發(fā)布時(shí)間:2023/12/4 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常用决策树集成模型Random Forest、Adaboost、GBDT详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

常用的集成學(xué)習(xí)策略

在之前的文章我有介紹過(guò)常用的基本決策樹(shù)模型ID3、C4.5、CART算法,其中提到了一個(gè)關(guān)于基本決策樹(shù)模型的缺點(diǎn),那就是決策樹(shù)模型學(xué)習(xí)一棵最優(yōu)的決策樹(shù)被認(rèn)為是NP-Complete問(wèn)題。實(shí)際中的決策樹(shù)是基于啟發(fā)式的貪心算法建立的,這種算法不能保證建立全局最優(yōu)的決策樹(shù),Random Forest 引入隨機(jī)能緩解這個(gè)問(wèn)題。

那么什么是Random Forest呢?其實(shí)這正是今天首先要介紹的集成學(xué)習(xí)框架的一種,常見(jiàn)的集成學(xué)習(xí)框架有三種:Bagging,Boosting 和 Stacking。三種集成學(xué)習(xí)框架在基學(xué)習(xí)器的產(chǎn)生和綜合結(jié)果的方式上會(huì)有些區(qū)別,其中Stacking用的不是特別多,僅做簡(jiǎn)單了解即可。

下面我會(huì)詳細(xì)介紹Bagging和Boosting的集成思想和對(duì)應(yīng)的集成框架,但是不包括它們的推導(dǎo),至于它們的公式推導(dǎo)我會(huì)在會(huì)另外用一篇博文進(jìn)行詳細(xì)介紹。

1.Bagging

Boosting是一簇可將基學(xué)習(xí)器提升為強(qiáng)學(xué)習(xí)器的算法。每個(gè)基學(xué)習(xí)器都會(huì)對(duì)訓(xùn)練集進(jìn)行有放回抽樣得到子訓(xùn)練集,比較著名的采樣法為 0.632 自助法。每個(gè)基學(xué)習(xí)器基于不同子訓(xùn)練集進(jìn)行訓(xùn)練,并綜合所有基學(xué)習(xí)器的預(yù)測(cè)值得到最終的預(yù)測(cè)結(jié)果。Bagging 常用的綜合方法是投票法,票數(shù)最多的類別為預(yù)測(cè)類別。

2.Boosting

Boosting 訓(xùn)練過(guò)程為階梯狀,基模型的訓(xùn)練是有順序的,每個(gè)基模型都會(huì)在前一個(gè)基模型學(xué)習(xí)的基礎(chǔ)上進(jìn)行學(xué)習(xí),最終綜合所有基模型的預(yù)測(cè)值產(chǎn)生最終的預(yù)測(cè)結(jié)果,用的比較多的綜合方式為加權(quán)法。

3.Stacking

Stacking 是先用全部數(shù)據(jù)訓(xùn)練好基模型,然后每個(gè)基模型都對(duì)每個(gè)訓(xùn)練樣本進(jìn)行的預(yù)測(cè),其預(yù)測(cè)值將作為訓(xùn)練樣本的特征值,最終會(huì)得到新的訓(xùn)練樣本,然后基于新的訓(xùn)練樣本進(jìn)行訓(xùn)練得到模型,然后得到最終預(yù)測(cè)結(jié)果。

總結(jié):

上面介紹的三種集成學(xué)習(xí)思想,都可以改善基本決策樹(shù)模型的貪心算法得到的不是最優(yōu)解的問(wèn)題。并且我們可能常聽(tīng)到這樣一種說(shuō)法:

  • bagging是減少方差(variance)
  • boosting是減少偏差(bias)

**偏差:**可以簡(jiǎn)單的理解為“ 準(zhǔn)度 ”,與目標(biāo)值得距離越遠(yuǎn)偏差越大。減小偏差需要增加模型得參數(shù),但又易過(guò)擬合。
**方差:**可以簡(jiǎn)單得理解為“ 穩(wěn)度 ”,分散程度越高方差越大(葉子節(jié)點(diǎn)多)。減小方差需要加少模型參數(shù),但又易欠擬合。

需要注意得是,我們常說(shuō)的集成學(xué)習(xí)的基模型與弱模型本不是一回事。集成學(xué)習(xí)的基模型可能是“弱模型”也可能是“強(qiáng)模型”。

  • 通常來(lái)說(shuō)弱模型是偏差高(在訓(xùn)練集上準(zhǔn)確度低)方差小(防止過(guò)擬合能力強(qiáng))的模型。
  • 強(qiáng)模型是指偏差低,方差高的模型,也就是準(zhǔn)確度高,但是可能過(guò)擬合的模型

綜上所述:
對(duì)于 Bagging 來(lái)說(shuō),整體模型的偏差與基模型近似,而隨著模型的增加可以降低整體模型的方差,故其基模型需要為強(qiáng)模型;(偏差低,方差高)準(zhǔn)確率高,但是可能有一點(diǎn)過(guò)擬合。

對(duì)于 Boosting 來(lái)說(shuō),整體模型的方差近似等于基模型的方差,而整體模型的偏差由基模型累加而成,故基模型需要為弱模型。(偏差高,方差低)準(zhǔn)確率低,但是并沒(méi)有過(guò)擬合。

常用的集成框架

1.Random Forest

Random Forest(隨機(jī)森林)是 Bagging 陣容的一員,很多人一聽(tīng)到隨機(jī)森林就把重點(diǎn)放在“森林”兩個(gè)字上面了,簡(jiǎn)單地認(rèn)為隨機(jī)森林就是很多棵決策樹(shù)組合投票,卻忽略了森林前面的重要修飾“隨機(jī)”。

集成思想:

隨機(jī)森林是 Bagging 的擴(kuò)展變體,它在以決策樹(shù)為基學(xué)習(xí)器構(gòu)建 Bagging 集成的基礎(chǔ)上,進(jìn)一步在決策樹(shù)的訓(xùn)練過(guò)程中引入了隨機(jī)特征選擇,因此可以概括 RF 包括四個(gè)部分:

  • 隨機(jī)選擇樣本(放回抽樣);
  • 隨機(jī)選擇特征;
  • 構(gòu)建決策樹(shù);
  • 隨機(jī)森林投票(平均)。
  • 優(yōu)點(diǎn):

  • 隨機(jī)的思想,使得每課樹(shù)即使不剪枝也不容易過(guò)擬合;
  • 在數(shù)據(jù)集上表現(xiàn)良好,相對(duì)于其他算法有較大的優(yōu)勢(shì);
  • 易于并行化,在大數(shù)據(jù)集上有很大的優(yōu)勢(shì);
  • 能夠處理高維度數(shù)據(jù),不用做特征選擇。
  • 2.Adaboost

    AdaBoost(Adaptive Boosting,自適應(yīng)增強(qiáng))是Boosting陣容的一員,其自適應(yīng)在于:前一個(gè)基本分類器分錯(cuò)的樣本會(huì)得到加強(qiáng),加權(quán)后的全體樣本再次被用來(lái)訓(xùn)練下一個(gè)基本分類器。同時(shí),在每一輪中加入一個(gè)新的弱分類器,直到達(dá)到某個(gè)預(yù)定的足夠小的錯(cuò)誤率或達(dá)到預(yù)先指定的最大迭代次數(shù)。

    集成思想:

  • 初始化訓(xùn)練樣本的權(quán)值分布,每個(gè)樣本具有相同權(quán)重;
  • 訓(xùn)練弱分類器,如果樣本分類正確,則在構(gòu)造下一個(gè)訓(xùn)練集中,它的權(quán)值就會(huì)被降低;反之提高。用更新過(guò)的樣本集去訓(xùn)練下一個(gè)分類器;
  • 將所有弱分類組合成強(qiáng)分類器,各個(gè)弱分類器的訓(xùn)練過(guò)程結(jié)束后,加大分類誤差率小的弱分類器的權(quán)重,降低分類誤差率大的弱分類器的權(quán)重。
  • Adaboost 模型是加法模型,學(xué)習(xí)算法為前向分步學(xué)習(xí)算法,損失函數(shù)為指數(shù)函數(shù)的分類問(wèn)題,為了防止 Adaboost 過(guò)擬合,我們通常也會(huì)加入正則化項(xiàng),這個(gè)正則化項(xiàng)我們通常稱為步長(zhǎng)(learning rate)。對(duì)于前面的弱學(xué)習(xí)器的迭代。

    加法模型:最終的強(qiáng)分類器是由若干個(gè)弱分類器加權(quán)平均得到的。

    前向分布學(xué)習(xí)算法:算法是通過(guò)一輪輪的弱學(xué)習(xí)器學(xué)習(xí),利用前一個(gè)弱學(xué)習(xí)器的結(jié)果來(lái)更新后一個(gè)弱學(xué)習(xí)器的訓(xùn)練集權(quán)重。

    優(yōu)點(diǎn)

  • 分類精度高;
  • 可以用各種回歸分類模型來(lái)構(gòu)建弱學(xué)習(xí)器,非常靈活;
  • 不容易發(fā)生過(guò)擬合。
  • 缺點(diǎn)

    • 對(duì)異常點(diǎn)敏感,異常點(diǎn)會(huì)獲得較高權(quán)重。

    3.GBDT

    GBDT(Gradient Boosting Decision Tree,梯度提升決策樹(shù))是Boosting陣容的一員,它是一種迭代的決策樹(shù)算法,該算法由多棵決策樹(shù)組成。GBDT 是被公認(rèn)的泛化能力較強(qiáng)的算法。

    集成思想:

    GBDT通過(guò)多輪迭代,每輪迭代產(chǎn)生一個(gè)弱分類器,每個(gè)分類器在上一輪分類器的梯度(如果損失函數(shù)最小均方損失函數(shù)(MSE),則負(fù)梯度就是殘差值)基礎(chǔ)上進(jìn)行訓(xùn)練。對(duì)弱分類器的要求一般是足夠簡(jiǎn)單,并且是低方差和高偏差的。因?yàn)橛?xùn)練的過(guò)程是通過(guò)降低偏差來(lái)不斷提高最終分類器的精度。

    GBDT主要由三部分組成:1.Gradient Boosting(GB)也就是梯度提升、2.Decision Tree(DT,這里用的是回歸樹(shù))、3.Shrinkage(一個(gè)重要思想)

    回歸樹(shù) Regression Decision Tree

    GBDT中的弱分類器選擇的是CART回歸樹(shù),而并不是分類樹(shù)(雖然調(diào)整后也可以分類)。對(duì)于分類樹(shù)而言,其值加減無(wú)意義(如性別),而對(duì)于回歸樹(shù)而言,其值加減才是有意義的(如說(shuō)年齡)22歲=16歲+4歲+2歲。GBDT 的核心在于累加所有樹(shù)的結(jié)果作為最終結(jié)果,所以 GBDT 中的樹(shù)都是回歸樹(shù),不是分類樹(shù),這一點(diǎn)相當(dāng)重要。

    回歸樹(shù)在分枝時(shí)會(huì)窮舉每一個(gè)特征的每個(gè)閾值以找到最好的分割點(diǎn),衡量標(biāo)準(zhǔn)是最小化均方誤差。

    注意:GBDT用于分類問(wèn)題仍然使用CART回歸樹(shù),使用softmax進(jìn)行概率映射,然后對(duì)概率的殘差進(jìn)行擬合

    梯度迭代 Gradient Boosting

    讓損失函數(shù)沿著梯度方向的下降。這個(gè)就是GBDT中GB的核心。GBDT 每輪迭代的時(shí)候,都去擬合損失函數(shù)在當(dāng)前模型下的負(fù)梯度。(如果損失函數(shù)使用的是平方誤差損失函數(shù),則這個(gè)損失函數(shù)的負(fù)梯度就可以用殘差來(lái)代替,以下所說(shuō)的殘差擬合,便是使用了最小均方損失函數(shù)**(MSE)**)

    Boosting思想:
    GBDT 的 Boosting 不同于 Adaboost 的 Boosting,GBDT 的每一步殘差計(jì)算其實(shí)變相地增大了被分錯(cuò)樣本的權(quán)重,而對(duì)與分對(duì)樣本的權(quán)重趨于 0,這樣后面的樹(shù)就能專注于那些被分錯(cuò)的樣本。

    縮減 Shrinkage

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

    加上Shrinkage之前

    加上Shrinkage之后

    Shrinkage 不直接用殘差修復(fù)誤差,而是只修復(fù)一點(diǎn)點(diǎn),把大步切成小步。本質(zhì)上 Shrinkage 為每棵樹(shù)設(shè)置了一個(gè) weight,累加時(shí)要乘以這個(gè) weight,當(dāng) weight 降低時(shí),基模型數(shù)會(huì)配合增大。

    優(yōu)點(diǎn):

  • 可以自動(dòng)進(jìn)行特征組合,擬合非線性數(shù)據(jù);
  • 可以靈活處理各種類型的數(shù)據(jù)。
  • 缺點(diǎn):

    • 對(duì)異常點(diǎn)敏感。

    參考文獻(xiàn)

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

    總結(jié)

    以上是生活随笔為你收集整理的常用决策树集成模型Random Forest、Adaboost、GBDT详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。