Bagging和Boosting都是將已有的分類或回歸算法通過一定方式組合起來脖隶,形成一個性能更加強大的分類器扁耐,更準確的說這是一種分類算法的組裝方法。即將弱分類器組裝成強分類器的方法产阱。
一婉称、 booststraping:意思是依靠你自己的資源,稱為自助法构蹬,它是一種有放回的抽樣方法王暗,它是非參數(shù)統(tǒng)計中一種重要的估計統(tǒng)計量方差進而進行區(qū)間估計的統(tǒng)計方法(如均值、方差等)庄敛。
其核心思想和基本步驟如下:
(1)采用重抽樣技術(shù)從原始樣本中抽取一定數(shù)量(自己給定)的樣本俗壹,此過程允許重復(fù)抽樣。
(2)根據(jù)抽出的樣本計算統(tǒng)計量T藻烤。
(3)重復(fù)上述N次(一般大于1000)绷雏,得到統(tǒng)計量T。
(4)計算上述N個統(tǒng)計量T的樣本方差怖亭,得到統(tǒng)計量的方差涎显。
應(yīng)該說是Bootstrap是現(xiàn)代統(tǒng)計學(xué)較為流行的方法,小樣本效果好依许,通過方差的估計可以構(gòu)造置信區(qū)間等棺禾。
二、Bagging (bootstrap aggregating)
Bagging即套袋法峭跳,可譯為自主整合法膘婶,其算法過程如下:
A)從原始樣本集中抽取訓(xùn)練集。每輪從原始樣本集中使用Bootstraping的方法抽取n個訓(xùn)練樣本(在訓(xùn)練集中蛀醉,有些樣本可能被多次抽取到悬襟,而有些樣本可能一次都沒有被抽中)。共進行k輪抽取拯刁,得到k個訓(xùn)練集立润。(k個訓(xùn)練集之間是相互獨立的)
B)每次使用一個訓(xùn)練集得到一個模型蓝谨,k個訓(xùn)練集共得到k個模型刷允。(注:這里并沒有具體的分類算法或回歸方法泽谨,我們可以根據(jù)具體問題采用不同的分類或回歸方法,如決策樹帚桩、感知器等)
C)對分類問題:將上步得到的k個模型采用投票的方式得到分類結(jié)果亿驾;對回歸問題,計算上述模型的均值作為最后的結(jié)果账嚎。(所有模型的重要性相同)
三莫瞬、Boosting
其主要思想是將弱分類器組裝成一個強分類器儡蔓。在PAC(概率近似正確)學(xué)習(xí)框架下,則一定可以將弱分類器組裝成一個強分類器疼邀。
其中主要的是adaboost(adaptive boosting)喂江,即自適應(yīng)助推法。
關(guān)于Boosting的兩個核心問題:
1)在每一輪如何改變訓(xùn)練數(shù)據(jù)的權(quán)值或概率分布旁振?
通過提高那些在前一輪被弱分類器分錯樣例的權(quán)值获询,減小前一輪分對樣例的權(quán)值,來使得分類器對誤分的數(shù)據(jù)有較好的效果拐袜。
2)通過什么方式來組合弱分類器筐付?
通過加法模型將弱分類器進行線性組合,比如AdaBoost通過加權(quán)多數(shù)表決的方式阻肿,即增大錯誤率小的分類器的權(quán)值,同時減小錯誤率較大的分類器的權(quán)值沮尿。
而提升樹通過擬合殘差的方式逐步減小殘差丛塌,將每一步生成的模型疊加得到最終模型。
gradient boosting:
boosting是一種思想畜疾,Gradient Boosting是一種實現(xiàn)Boosting的方法赴邻,它的主要思想是,每一次建立模型啡捶,是在之前建立模型損失函數(shù)的梯度下降方向姥敛。損失函數(shù)描述的是模型的不靠譜程度,損失函數(shù)越大瞎暑,說明模型越容易出錯彤敛。如果我們的模型能夠讓損失函數(shù)持續(xù)的下降,說明我們的模型在不停的改進了赌,而最好的方式就是讓損失函數(shù)在其梯度的方向下降墨榄。
Bagging和Boosting的區(qū)別:
1)樣本選擇上:
Bagging:訓(xùn)練集是在原始集中有放回選取的,從原始集中選出的各輪訓(xùn)練集之間是獨立的勿她。
Boosting:每一輪的訓(xùn)練集不變袄秩,只是訓(xùn)練集中每個樣例在分類器中的權(quán)重發(fā)生變化。而權(quán)值是根據(jù)上一輪的分類結(jié)果進行調(diào)整逢并。
2)樣例權(quán)重:
Bagging:使用均勻取樣之剧,每個樣例的權(quán)重相等
Boosting:根據(jù)錯誤率不斷調(diào)整樣例的權(quán)值,錯誤率越大則權(quán)重越大砍聊。
3)預(yù)測函數(shù):
Bagging:所有預(yù)測函數(shù)的權(quán)重相等背稼。
Boosting:每個弱分類器都有相應(yīng)的權(quán)重,對于分類誤差小的分類器會有更大的權(quán)重辩恼。
4)并行計算:
Bagging:各個預(yù)測函數(shù)可以并行生成
Boosting:各個預(yù)測函數(shù)只能順序生成雇庙,因為后一個模型參數(shù)需要前一輪模型的結(jié)果谓形。
在大多數(shù)數(shù)據(jù)集中,boosting的準確性要比bagging高疆前。有一些數(shù)據(jù)集總寒跳,boosting會退化-overfit。boosting思想的一種改進型adaboost方法在郵件過濾竹椒,文本分類中有很好的性能童太。
四、總結(jié)
這兩種方法都是把若干個分類器整合為一個分類器的方法胸完,只是整合的方式不一樣书释,最終得到不一樣的效果,將不同的分類算法套入到此類算法框架中一定程度上會提高了原單一分類器的分類效果赊窥,但是也增大了計算量爆惧。
下面是將決策樹與這些算法框架進行結(jié)合所得到的新的算法:
1)Bagging + 決策樹 = 隨機森林
2)AdaBoost + 決策樹 = 提升樹
3)Gradient Boosting + 決策樹 = GBDT
參考文獻:
1、快速理解bootstrap,bagging,boosting-三個概念(CSDN博客锨能, 作者:wangqi880)
2扯再、Bagging和Boosting 概念及區(qū)別(博客園, 作者:liuwu265)