集成學(xué)習(xí)(1)

隨機(jī)森林


1. 原理

隨機(jī)森林屬于Bagging的擴(kuò)展變體

Bagging:有放回抽樣,多數(shù)表決(分類)或簡(jiǎn)單平均(回歸),同時(shí)Bagging的基學(xué)習(xí)器之間屬于并列生成,不存在強(qiáng)依賴關(guān)系。

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

? 1、隨機(jī)選擇樣本(放回抽樣);

? 2、隨機(jī)選擇特征;

? 3、構(gòu)建決策樹;

? 4、隨機(jī)森林投票(平均)。

隨機(jī)選擇特征:在樹的構(gòu)建中,會(huì)從樣本集的特征集合中隨機(jī)選擇部分特征,然后再?gòu)倪@個(gè)子集中選擇最優(yōu)的屬性用于劃分,這種隨機(jī)性導(dǎo)致隨機(jī)森林的偏差會(huì)有稍微的增加(相比于單棵不隨機(jī)樹),但是由于隨機(jī)森林的平均’特性,會(huì)使得它的方差減小,而且方差的減小補(bǔ)償了偏差的增大,因此總體而言是更好的模型。

在構(gòu)建決策樹的時(shí)候,RF的每棵決策樹都最大可能的進(jìn)行生長(zhǎng)而不進(jìn)行剪枝;在對(duì)預(yù)測(cè)輸出進(jìn)行結(jié)合時(shí),RF通常對(duì)分類問(wèn)題使用簡(jiǎn)單投票法,回歸任務(wù)使用簡(jiǎn)單平均法。


2. 隨機(jī)森林的生成方法

  1. 對(duì)于t=1,2,…,T
  • 對(duì)訓(xùn)練集進(jìn)行第t次隨機(jī)采樣,共采集m次,得到包含m個(gè)樣本的采樣集D_t;
  • 用采樣集D_t訓(xùn)練第t個(gè)決策樹模型G_t(x),在訓(xùn)練決策樹模型的節(jié)點(diǎn)的時(shí)候, 在節(jié)點(diǎn)上所有的樣本特征中選擇一部分樣本特征, 在這些隨機(jī)選擇的部分樣本特征中選擇一個(gè)最優(yōu)的特征來(lái)做決策樹的左右子樹劃分;
  1. 如果是分類算法預(yù)測(cè),則T個(gè)弱學(xué)習(xí)器投出最多票數(shù)的類別或者類別之一為最終類別。如果是回歸算法,T個(gè)弱學(xué)習(xí)器得到的回歸結(jié)果進(jìn)行算術(shù)平均得到的值為最終的模型輸出。

RF使用了CART決策樹作為弱學(xué)習(xí)器;

RF通過(guò)隨機(jī)選擇節(jié)點(diǎn)上的一部分樣本特征,這個(gè)數(shù)字小于n,從中選擇一個(gè)最優(yōu)的特征來(lái)做決策樹的左右子樹劃分,這樣進(jìn)一步增強(qiáng)了模型的泛化能力。


3. 什么是袋外數(shù)據(jù)(Out of Bag)

在一個(gè)含有m個(gè)樣本的訓(xùn)練集中進(jìn)行隨機(jī)采樣,樣本被采到的概率是\frac{1}{m},不被采到的概率是1-\frac{1}{m},則:

m\rightarrow\infty,\quad\lim_{n\rightarrow+\infty}(1 - \frac{1}{m})^{m}=0.368


4. 隨機(jī)森林是否需要做交叉驗(yàn)證

結(jié)論:不需要

它可以在內(nèi)部進(jìn)行評(píng)估,也就是說(shuō)在生成的過(guò)程中可以對(duì)誤差進(jìn)行無(wú)偏估計(jì),由于每個(gè)基學(xué)習(xí)器只使用了訓(xùn)練集中約63.2%的樣本,剩下約36.8%的樣本可用做驗(yàn)證集來(lái)對(duì)其泛化性能進(jìn)行“包外估計(jì)”。


5. 為什么隨機(jī)森林不會(huì)發(fā)生過(guò)擬合

在建立每一棵決策樹的過(guò)程中,有兩點(diǎn)需要注意采樣完全分裂

  • 采樣:RF對(duì)輸入的數(shù)據(jù)要進(jìn)行行、列的隨機(jī)采樣。

    對(duì)于行采樣,采用有放回的方式,也就是在采樣得到的樣本集合中,可能有重復(fù)的樣本。假設(shè)輸入樣本為N個(gè),那 么采樣的樣本也為N個(gè)。這樣使得在訓(xùn)練的時(shí)候,每一棵樹的輸入樣本都不是全部的樣本,使得相對(duì)不容易出現(xiàn)over-fitting

    對(duì)于列采樣:列采樣,從M 個(gè)feature中,選擇m個(gè)(m << M)

  • 完全分裂:對(duì)采樣之后的數(shù)據(jù)使用完全分裂的方式建立出決策樹,這樣決策樹的某一個(gè)葉子節(jié)點(diǎn)要么是無(wú)法繼續(xù)分裂的,要么里面的所有樣本的都是指向同一個(gè)類。


6. 隨機(jī)森林與Bagging的對(duì)比

RF的起始性能較差(當(dāng)只有一個(gè)基學(xué)習(xí)器時(shí))隨著學(xué)習(xí)器增多,隨機(jī)森林通常會(huì)收斂到更低的泛化誤差。

RF選擇與輸入樣本數(shù)目相同多的樣本(采樣樣本次);Bagging一般選擇比輸入樣本少的樣本。

隨機(jī)森林的訓(xùn)練效率也會(huì)高于Bagging,因?yàn)樵趩蝹€(gè)決策樹的構(gòu)建中,Bagging使用的是確定性決策樹,在選擇特征劃分結(jié)點(diǎn)時(shí),要對(duì)所有的特征進(jìn)行考慮,而隨機(jī)森林使用的是隨機(jī)性特征數(shù),只需考慮特征的子集。


7. 隨機(jī)森林的優(yōu)缺點(diǎn)

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

(1)不必?fù)?dān)心過(guò)度擬合(模型方差小,泛化能力強(qiáng));
(2)對(duì)于部分缺失特征不敏感;
(3)能夠處理很高維的數(shù)據(jù)并且不需要特征選擇,訓(xùn)練完成后可以給出特征的重要性;
(5)算法容易理解;
(6)可以高度并行處理。

缺點(diǎn):

(1)在噪聲較大的分類或者回歸問(wèn)題上會(huì)過(guò)擬合。
(2)執(zhí)行速度雖然比Boosting等快,但是比單個(gè)的決策樹慢很多。
(3)可能會(huì)出現(xiàn)一些差異度非常小的樹,淹沒(méi)了一些正確的決策。
(4)由于樹是隨機(jī)生成的,結(jié)果不穩(wěn)定(kpi值比較大)



GBDT


1. 原理

Boosting:使用多個(gè)分類器,不同的分類器是通過(guò)串行訓(xùn)練而獲得的,每個(gè)新分類器都根據(jù)已訓(xùn)練的分類器的性能來(lái)進(jìn)行訓(xùn)練。Boosting是通過(guò)關(guān)注被已有分類器錯(cuò)分的那些數(shù)據(jù)來(lái)獲得新的分類器。

Boosting分類的結(jié)果是基于所有分類器的加權(quán)求和結(jié)果的(bagging中權(quán)值是一致的)

GBDT與傳統(tǒng)的Boosting區(qū)別較大,它的每一次計(jì)算都是為了減少上一次的殘差

而為了消除殘差,我們可以在殘差減小的梯度方向上建立模型

殘差:和預(yù)測(cè)值相加后能得到真實(shí)值的累加量

在GradientBoost中,每個(gè)新的模型的建立是為了使得之前的模型的殘差往梯度下降的方向,與傳統(tǒng)的Boosting中關(guān)注正確錯(cuò)誤的樣本加權(quán)有著很大的區(qū)別。

  • 關(guān)鍵:利用損失函數(shù)的負(fù)梯度方向在當(dāng)前模型的值作為殘差的近似值,進(jìn)而擬合一棵CART回歸樹。
  • GBDT的會(huì)累加所有樹的結(jié)果,而這種累加是無(wú)法通過(guò)分類完成的,因此GBDT的樹都是CART回歸樹,而不是分類樹(盡管GBDT調(diào)整后也可以用于分類但不代表GBDT的樹為分類樹)。

結(jié)論GBDT的核心就在于,每一棵樹學(xué)的是之前所有樹結(jié)論和的殘差,通過(guò)不斷減少訓(xùn)練過(guò)程中產(chǎn)生的殘差對(duì)問(wèn)題不斷優(yōu)化


2. GBDT的生成方法

  1. GBDT通過(guò)迭代M輪,每輪產(chǎn)生一個(gè)弱分類器T\left ( x;\theta _m \right )

    弱分類器的損失函數(shù)為\hat\theta_{m} = \mathop{\arg\min}_{\theta_{m}} \sum_{i=1}^{N}L\left ( y_{i},F_{m-1}(x_{i})+T(x_{i};\theta_{m} ) \right )

    樣本x_i的損失函數(shù)的負(fù)梯度為y_i^` = -[\frac{\partial L(y_i, F(x_i))}{\partial F(x_i)}]_{F(x)=F_{m-1}(x)},利用(x_i,y_I^`)擬合一顆CART樹

    每個(gè)弱分類器在當(dāng)前模型F_{m-1}(x) 的基礎(chǔ)上進(jìn)行訓(xùn)練

    弱分類器的要求:足夠簡(jiǎn)單,低方差高偏差(訓(xùn)練過(guò)程是通過(guò)降低偏差來(lái)提高分類精度的)

  2. 最終的總分類器是將每輪訓(xùn)練的弱分類器加權(quán)得到的(加法模型)

    F_{m}(x) = \sum_{m=1}^{M}T\left ( x;\theta _m \right )

GBDT通過(guò)經(jīng)驗(yàn)風(fēng)險(xiǎn)及消化來(lái)確定下一個(gè)分類器的參數(shù)。如果選擇平方損失函數(shù),那么這個(gè)差值就是殘差:

min\frac{1}{2}\sum_{i=1}^{N}(y_i - (F_{m-1}(x_i) + T(x_i;\theta_m)))^2\rightarrow y_i-F_{m-1}=T

  • 希望損失函數(shù)能夠不斷減小,并且快速的減小
  • 讓損失函數(shù)沿著梯度下降的方向

3. GBDT如何選擇特征

GBDT默認(rèn)的弱分類器是CART樹

  1. 假設(shè)總共有M個(gè)特征,首先選取一個(gè)特征j作為二叉樹的第一個(gè)切分特征,然后對(duì)特征j選擇一個(gè)切分點(diǎn)m
  2. 特征j的值小于m,則分為一類,如果大于m,則分為另一類
  • 遍歷每個(gè)特征,然后對(duì)每個(gè)特征遍歷它所有可能的切分點(diǎn),找到最優(yōu)特征m的最優(yōu)切分點(diǎn) j
  • 衡量我們找到的特征m和切分點(diǎn) j
    • 回歸:平房誤差min_{j,m}[min_{c_1}\sum_{x_i\in R_1(j,m)}(y_i - c_1)^2 + min_{c_2}\sum_{x_i\in R_2(j,m)}(y_i - c_2)^2]c_m=ave(y_i|x_i\in R_m)
    • 分類:Gini(p)=\sum_{k=1}^{K}p_k(1-p_k)=1 - \sum_{k=1}^{K}p_k^2,對(duì)于給定的集合D,基尼系數(shù)為Gini(D)=1 - \sum_{k=1}^{K}[\frac{C_k}{D}]^2

4.GBDT如何構(gòu)建特征

GBDT可以產(chǎn)生特征的組合

在CTR預(yù)估中,工業(yè)界一般會(huì)采用邏輯回歸,但LR本身只適合處理線性問(wèn)題,如果要處理非線性,可以進(jìn)行特征組合

Facebook發(fā)表過(guò)一篇文章,利用GBDT去產(chǎn)生有效的特征組合,以便邏輯回歸進(jìn)行訓(xùn)練來(lái)提升最終的效果。

GBDT 生成了兩棵樹,兩顆樹一共有五個(gè)葉子節(jié)點(diǎn)。我們將樣本 X 輸入到兩顆樹當(dāng)中去,樣本X 落在了第一棵樹的第二個(gè)葉子節(jié)點(diǎn),第二顆樹的第一個(gè)葉子節(jié)點(diǎn),于是我們便可以依次構(gòu)建一個(gè)五緯的特征向量[0,1,0,1,0]


5.GBDT如何用于分類

GBDT 無(wú)論用于分類還是回歸一直都是使用的CART 回歸樹

GBDT 每輪的訓(xùn)練是在上一輪的訓(xùn)練的殘差基礎(chǔ)之上進(jìn)行訓(xùn)練的。這里的殘差就是當(dāng)前模型的負(fù)梯度值 。這個(gè)要求每輪迭代的時(shí)候,弱分類器的輸出的結(jié)果相減是有意義的。殘差相減是有意義的。

弱分類器是分類樹,類別相減是沒(méi)有意義的

  1. 在訓(xùn)練時(shí),針對(duì)樣本x_i每個(gè)可能的類(總共K類)都訓(xùn)練一個(gè)分類回歸樹

    實(shí)質(zhì)上是在每輪訓(xùn)練的時(shí)候同時(shí)訓(xùn)練K顆樹。第k顆樹針對(duì)樣本x_i的第k類,輸入為(x_i, y_k),y_{k=c}=1

    對(duì)應(yīng)的K個(gè)輸出為f_k(x_i)

    仿照Softmax,則屬于類別c的概率為:p_{c}=\frac{exp(f_c(x_i)}{\sum_{k=1}^{K}exp(f_k(x_i))}

  2. 計(jì)算每個(gè)樹針對(duì)類別1的殘差

    殘差y_{ck}=k-p_c,k=1,…,K

    針對(duì)下一輪,將本輪的殘差作為輸入(x_i,y_{ck}(x_i))輸入k第顆樹(同樣K有棵樹)


6. GBDT如何做正則化

為了防止過(guò)擬合,需要對(duì)GBDT做正則化,主要有三種方式:

  1. 與Adaboost類似的正則化項(xiàng):步長(zhǎng)(learning rate),定義為v

    F_k(x)=F_{k-1}(x)+f_k(x)\rightarrow F_k(x)=F_{k-1}(x)+vf_k(x)

    0<v\leq1,較小的v意味著更多的弱學(xué)習(xí)期迭代次數(shù)

  2. 通過(guò)子采樣步長(zhǎng)(subsample),定義為s\in (0,1]。RF采用有放回抽樣,GBDT采用不放回抽樣

    當(dāng)s=1,則不采用子采樣;當(dāng)s<1,則使用部分樣本做GBDT

    部分樣本可以減少方差(防止過(guò)擬合),但是會(huì)增加樣本擬合偏差,所以s不能太低

  3. 正則化剪枝


7. GBDT通過(guò)什么方式減少誤差

每棵樹都是在擬合當(dāng)前模型的預(yù)測(cè)值和真實(shí)值之間的誤差,GBDT是通過(guò)不斷迭代來(lái)使得誤差減小的過(guò)程。


8. GBDT相比于傳統(tǒng)的LR,SVM效果為什么好一些?

GBDT基于樹模型,繼承了樹模型的優(yōu)點(diǎn) [對(duì)異常點(diǎn)魯棒、不相關(guān)的特征干擾性低(LR需要加正則)、可以很好地處理缺失值、受噪音的干擾小]


9. GBDT如何求梯度

BGDT進(jìn)行梯度下降時(shí)是損失函數(shù)對(duì)目標(biāo)函數(shù)求導(dǎo):\frac{\part L}{\part f_{m-1}},而不是對(duì)特征值

決策樹的目標(biāo)函數(shù)沒(méi)法用一個(gè)表達(dá)式求解,每個(gè)節(jié)點(diǎn)都是用一個(gè)值來(lái)分離樣本,無(wú)法直接通過(guò)表達(dá)式來(lái)求解

把函數(shù)f_{m-1}理解成在所有樣本上的函數(shù)值,即負(fù)梯度為-\frac{\part L}{\part f_{m-1}(x_i)}

對(duì)于樣本x_i,i=1,…,N,都有一個(gè)梯度值,最終的函數(shù)梯度為所有樣本的梯度和


10. GBDT的訓(xùn)練問(wèn)題

  • 如何設(shè)置單顆樹的停止生長(zhǎng)條件?

    • 節(jié)點(diǎn)分裂時(shí)的最小樣本數(shù)
    • 最大深度
    • 最大葉子節(jié)點(diǎn)數(shù)
    • loss滿足的約束條件
  • 如何評(píng)估特征的權(quán)重大?。?/p>

    • 通過(guò)計(jì)算每個(gè)特征在訓(xùn)練集下的信息增益,最后計(jì)算每個(gè)特征信息增益與所有特征信息增益之和的比例
    • 用相同的GBDT參數(shù)對(duì)每個(gè)特征訓(xùn)練一個(gè)模型,然后計(jì)算每個(gè)特征正確分類的個(gè)數(shù),最后計(jì)算每個(gè)特征正確分類的個(gè)數(shù)與所有正確分類個(gè)數(shù)之和的比例
  • 當(dāng)增加樣本數(shù)量時(shí),訓(xùn)練時(shí)長(zhǎng)是線性增加的嗎?

    不是,生成單顆樹樹時(shí),對(duì)于$$,損失函數(shù)極小值與樣本數(shù)量N$$不是線性相關(guān)

  • 當(dāng)增加樹的顆樹時(shí),訓(xùn)練時(shí)長(zhǎng)是線性增加的嗎?

    不是,因?yàn)槊靠脴涞纳蓵r(shí)間復(fù)雜度不一樣

  • 每個(gè)節(jié)點(diǎn)上都保存什么信息?

    • 中間節(jié)點(diǎn)保存某個(gè)特征的分割值
    • 也幾點(diǎn)保存預(yù)測(cè)x_i是某個(gè)類別的概率
  • 如何防止過(guò)擬合?

    • 增加樣本(數(shù)據(jù)偏差或數(shù)據(jù)集小的緣故),移除噪聲
    • 減少特征,保留重要的特征
    • 對(duì)樣本進(jìn)行采樣
    • 對(duì)特征進(jìn)行采樣
  • GBDT在訓(xùn)練和預(yù)測(cè)是都用到了步長(zhǎng),這兩個(gè)步長(zhǎng)一樣嗎?有什么用?如何設(shè)置?

    • 訓(xùn)練步長(zhǎng)和預(yù)測(cè)步長(zhǎng)是一樣的,可以從訓(xùn)練的過(guò)程中獲得(更新當(dāng)前迭代模型的時(shí)候)
    • 作用:使得每次更新模型的時(shí)候,Loss能夠平穩(wěn)地沿著負(fù)梯度的方向下降,不至于震蕩
    • 設(shè)置:一種是按照策略來(lái)決定步長(zhǎng),另一種是在訓(xùn)練模型是學(xué)習(xí)步長(zhǎng)
      • 初始時(shí)步長(zhǎng)相同(較小的值),隨著迭代次數(shù)動(dòng)態(tài)改變(衰減)
      • 訓(xùn)練第k顆樹時(shí),利用前k-1顆樹求梯度,所以可以把步長(zhǎng)當(dāng)作一個(gè)變量來(lái)學(xué)習(xí)
    • 如果步長(zhǎng)較大,訓(xùn)練時(shí)容易發(fā)生震蕩,模型學(xué)習(xí)不好;步長(zhǎng)較小時(shí),訓(xùn)練時(shí)間過(guò)長(zhǎng),迭代次數(shù)較大,生成較多的樹,使得模型變復(fù)雜
  • GBDT哪些部分可以并行?

    • 計(jì)算每個(gè)樣本的梯度
    • 挑選最佳分裂特征及分裂節(jié)點(diǎn)時(shí),對(duì)特征計(jì)算相應(yīng)的誤差及均值時(shí)
    • 更新每個(gè)樣本的負(fù)梯度時(shí)
    • 預(yù)測(cè)時(shí),將之前所有樹的結(jié)果累加的時(shí)候
  • 樹生長(zhǎng)畸形會(huì)怎么樣,如何預(yù)防?

    在樹的生成過(guò)程中,加入不平衡約束條件。

    對(duì)樣本集中分裂到某個(gè)節(jié)點(diǎn),對(duì)另一個(gè)節(jié)點(diǎn)的樣本很少的情況進(jìn)行懲罰


10. RF與GBDT的區(qū)別

  • 組成隨機(jī)森林的樹可以分類樹也可以是回歸樹,而GBDT只由回歸樹組成
  • 組成隨機(jī)森林的樹可以并行生成,而GBDT是串行生成
  • 隨機(jī)森林的結(jié)果是多數(shù)表決,而GBDT則是多棵樹累加之和
  • 隨機(jī)森林對(duì)異常值不敏感,而GBDT對(duì)異常值比較敏感
  • 隨機(jī)森林是通過(guò)減少模型的方差來(lái)提高性能,而GBDT是減少模型的偏差來(lái)提高性能的
  • 隨機(jī)森林不需要進(jìn)行數(shù)據(jù)預(yù)處理,即特征歸一化。而GBDT則需要進(jìn)行特征歸一化

GBDT的優(yōu)缺點(diǎn)

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

可以靈活處理各種類型的數(shù)據(jù),包括連續(xù)值和離散值。
相對(duì)于SVM來(lái)說(shuō),在相對(duì)少的調(diào)參時(shí)間情況下,預(yù)測(cè)的準(zhǔn)備率也可以比較高。
使用一些健壯的損失函數(shù),對(duì)異常值的魯棒性非常強(qiáng)。比如 Huber損失函數(shù)和Quantile損失函數(shù)。

缺點(diǎn)

由于弱學(xué)習(xí)器之間存在依賴關(guān)系,難以并行訓(xùn)練數(shù)據(jù)。不過(guò)可以通過(guò)自采樣的SGBT來(lái)達(dá)到部分并行。



XGBoost


XGBoost是一個(gè)大規(guī)模、分布式的通用Gradient Boosting庫(kù),它在GB框架下實(shí)現(xiàn)了GBDT和一些廣義線性機(jī)器學(xué)習(xí)算法。

XGBoost與GBDT的區(qū)別

  • 傳統(tǒng)的GBDT以CART作為基分類器,XGBoost還支持線性分類器

    此時(shí)XGBoost相當(dāng)于帶L1和L2正則項(xiàng)的LR

  • GBDT使用Gini系數(shù)進(jìn)行分裂,XGBoost是經(jīng)過(guò)優(yōu)化推導(dǎo)后得到的

    Gain=\frac{G_L^2}{H_L+\lambda} + \frac{G_R^2}{H_R+\lambda} - \frac{(G_L+G_R)^2}{H_L+H_R + \lambda} - \gamma

  • XGBoost對(duì)損失函數(shù)進(jìn)行二階泰勒展開(kāi)(同時(shí)用到了一階和二階導(dǎo)數(shù)),傳統(tǒng)GBDT在優(yōu)化時(shí)只使用一階導(dǎo)數(shù)信息。XGBoost還支持自定義代價(jià)函數(shù)

    二階導(dǎo)數(shù)有利于梯度下降的更快更準(zhǔn)

    在不確定損失函數(shù)具體形式的情況下,僅僅依靠輸入數(shù)據(jù)的值就可以進(jìn)行葉子分類優(yōu)化計(jì)算

  • XGBoost在代價(jià)函數(shù)里加入了正則項(xiàng),用于控制模型復(fù)雜度

    Obj=\sum_{i=1}^{N}l(y_i,y_i^,) + \sum_{k=1}^{K}\Omega(f_k),\quad\Omega(f_k)=\gamma T + \frac{1}{2}\sum_{j=1}^{T}w_j^2

  • XGBoost支持列抽樣。不僅能降低過(guò)擬合,還能減少計(jì)算

  • XGBoost會(huì)進(jìn)行權(quán)重縮減。在每一次迭代完成后,會(huì)將葉子結(jié)點(diǎn)的權(quán)重乘上蓋系數(shù),主要是為了削弱每棵樹的影響。

  • XGBoost對(duì)缺失處理。對(duì)于特征有缺失的樣本,XGBoost可以自動(dòng)學(xué)習(xí)出它的分裂方向

  • XGBoost支持并行

    • XGBoost的并行并不是Tree粒度上的,XGBoost也是一次迭代完才能進(jìn)行下一次迭代
    • XGBoost的并行是在特征粒度上(決策樹最耗時(shí)的步驟就是對(duì)特征值進(jìn)行排序,確定最佳分類節(jié)點(diǎn))
    • XGBoost在訓(xùn)練前,預(yù)先對(duì)數(shù)據(jù)進(jìn)行排序,保存為block結(jié)構(gòu),后邊的迭代中重復(fù)使用這個(gè)結(jié)構(gòu)大大減小計(jì)算量。各個(gè)特征的增益計(jì)算就可以多線程進(jìn)行。

Bagging、RF、Boosting、Adaboost、GBDT

Bagging:可以看成投票選舉的方式。通過(guò)訓(xùn)練多個(gè)模型(每個(gè)模型從初始訓(xùn)練集中隨機(jī)選取出N個(gè)組成訓(xùn)練集訓(xùn)練模型),將這些訓(xùn)練好的模型進(jìn)行加權(quán)組合來(lái)獲得最終的輸出結(jié)果(分類/回歸)。

在特征一定的情況下,用Bagging思想去提升效果。

RF:RF在Bagging的基礎(chǔ)上做了修改。在樣本集中采用Boostrap采樣N個(gè)樣本,建立CART樹,在樹的每個(gè)節(jié)點(diǎn)上,從所有屬性中隨機(jī)選擇K個(gè)屬性,選擇出一個(gè)最佳屬性特征作為節(jié)點(diǎn)。

隨機(jī)森林既可以處理離散屬性,也可以處理連續(xù)值

Boosting:Boosting算法是一個(gè)迭代過(guò)程,每次新的訓(xùn)練都是為了改進(jìn)上一次的結(jié)果。Boosting在采樣時(shí)給樣本增加了一個(gè)權(quán)重,使得Loss Function盡量考慮哪些分錯(cuò)類的樣本。

Boosting采樣的不是樣本,而是樣本的分布。對(duì)分類正確的樣本降低權(quán)重,分類錯(cuò)誤的樣本增加權(quán)重(通常是邊界附近的點(diǎn)),最有加權(quán)組合多個(gè)弱分類器

Adaboost:對(duì)數(shù)據(jù)集,建立個(gè)弱分類器。每次將分錯(cuò)的數(shù)據(jù)權(quán)重提高,將分對(duì)的數(shù)據(jù)權(quán)重降低,再進(jìn)行分類。

每次迭代的樣本是一樣的,即沒(méi)有采樣過(guò)程,只是不同樣本的權(quán)重不一樣

  1. 初始化訓(xùn)練集相等的權(quán)重,
  2. 在訓(xùn)練集上進(jìn)行輪,每次訓(xùn)練后,對(duì)失敗的權(quán)重加大,讓學(xué)習(xí)器在后續(xù)學(xué)習(xí)中更加關(guān)注這些樣本,從而得到一個(gè)預(yù)測(cè)函數(shù),預(yù)測(cè)函數(shù)也有一定的權(quán)重。

GBDT:每一次的計(jì)算是為了減少上一次的殘差,在殘差梯度減少的梯度方向上建立一個(gè)新的模型

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容