三-----Bagging和Boosting

0.前言

Bagging和Boosting都是在前面決策樹的基礎上進行的強化,其主要思想是通過多個分類器(不一定是決策樹)來進行投票最終確定分類結果。對於這樣的做法從幾何上可以理解為不同的分類器的線性組合構造了更加複雜的分離平面。機器學習的泛化誤差可以分為偏差和方差,偏差是指真實值和預測值之間的差別,反映模型本身的擬合能力。方差是指在不同的數據集上模型表現的不同,反映了數據波動對於模型的影響。模型越複雜,模型的擬合能力就越強,偏差就越小,但是在另一個數據集上,可能模型的效果不好(過擬合),使得方差變大。一般來說,簡單的模型方差小,偏差大。複雜的模型偏差小,方差大。Bagging方法中的每一棵樹深度比較深,使得偏差較小,通過多棵獨立的樹的組合來減少方差。Boosting方法中的每一棵樹比較淺,使得方差較小,通過多棵有關聯的數來減少偏差。

1.Bagging

Bagging的思想是通過訓練集產生不同的子集,在每個子集上分別建立模型,最終的結果由每一個模型投票決定,每一個模型投票的權重相同。

1.1抽樣

Bagging建立子集的過程中涉及到抽樣,Bagging所採用的抽樣方式為有放回抽樣,抽樣的樣本數量等於總體樣本數量。由於某些樣本在有放回的情況下不止被抽到一次,有些樣本一次也不會被抽到。所以每個子集之間以及和原始樣本之間存在一定的差異。大概有1/3的樣本不會被抽到。之所以選擇有放回抽樣的方式是為了保證每一次抽樣之間的獨立性以及樣本所具有的分布。減少抽樣的過程對於樣本分布的影響。在這個過程之中,每個樣本被抽到的概率均等,因此,可以並行產生所需要的樣本子集個數。因為最後的判斷涉及投票,因此,對於二分類問題,一般選取樣本子集個數為奇數(避免出現兩種類別投票相同的情況)。

1.2優點

Bagging的準確率明顯高於單個分類器,其原因是存在多個分類器,能夠很好的克服一些噪音,即使一些模型錯誤判斷也不會影響最後的結果,具有魯棒性。此外,多個分類器同樣不容易出現過擬合現象

1.3隨機森林

Bagging思想的典型代表是隨機森林,隨機森林的隨機體現在抽樣的隨機以及特徵選擇的隨機上。抽樣的隨機和Bagging相似,其中每個子集中未被抽到的樣本可以作為袋外數據(Out Of Bag,OOB)對訓練出的模型進行測試。特徵選擇的隨機為在所有特徵中隨機選擇一些其中一部分特徵進行訓練,這樣做的好處在於每個模型由於選取的特徵不同,因此對於需要分類的問題關注點有所不同,因此能夠得到更好的效果。隨機森林最後的投票採用等權的方式,並且在構造每一個決策樹的時候不需要進行減枝操作

2.Boosting

Boosting也是訓練多個分類器,但是抽樣以及投票的方式和Bagging有所不同,簡單的可以理解為Bagging+權重。最常見的方法是AdaBoosting

2.1抽樣

在最開始的時候,每一個樣本具有相同的權重。即樣本具有相同的概率被抽出。之後在這個訓練子集上進行訓練,可得到模型的準確率,對於模型準確率小於50%的可以捨去或者反向選取(模型預測為正則取負)。對於正確預測的樣本,改變其權重使得在下一個子集中有更低的概率被抽出。權重更改公式為:wcdot frac{err}{1-err} 。其中w為原始權重,err為錯誤率。由於錯誤率小於0.5,因此新權重小於原始權重。

可以看到,由於下一個子集抽取的概率受到上一個子集的結果影響,因此,抽樣過程不獨立。需要在訓練好一個模型後再進行下一個抽樣。

2.2投票

在訓練好所有的模型後,最後產生輸出結果的時候需要對每一個分類器賦予權重,簡單的做法可以把準確率歸一化作為權重。

2.3優缺點

由於對於不同的樣本在抽樣時賦予了不同的權重,使得後面的模型更加的關注於被錯誤分類的樣本,因此,Boosting比Bagging具有更高的準確率,但是,這樣同樣也導致了Boosting可能會出現過擬合的現象。

3.總結

這段時間事情比較多,因此很久都沒有更新了

由於Bagging和Boosting都是在決策樹基礎上的不同操作,因此內容比較少。但是這兩種思路十分有趣,也十分有效。

接下來總結損失函數、回歸、正則化等問題

推薦閱讀:

cs231n assignment1
斯坦福CS231n項目實戰(三):Softmax線性分類
機器學習面試題精講(一)
為什麼要對特徵進行縮放(歸一化)
深度森林(deep forest)

TAG:機器學習 | 決策樹 |