機器學習算法之Bagging與RF詳解

之前我們已經介紹過Boosting算法,是通過對訓練集進行採樣,產生不同的獨立的子集,然後再訓練出一個基學習器,通過集成可以得到一個泛化能力強的模型。但爲了有更好的集成,我們希望個體學習器之間的差異不能太大,否則會因爲每個學習器只用到了一小部分訓練數據,不足以進行有效的學習。

因此,有必要考慮使用相互有交疊的採樣子集。

Bagging

Bagging是並行式集成學習方法最著名的代表。是基於自主採樣法(bootstrap sampling)進行採樣,具體步驟如下:

1、在給定包含m個樣本的數據集,先隨機抽取一個樣本放入採樣集中,再把該樣本放入初始數據集。使得下次採樣時該樣本仍然有可能被選中;

2、重複上述步驟,經過m次的隨機採樣操作,可以得到包含m個樣本的採樣集,在該訓練集中有的樣本多次出現,有的則從未出現。計算可知,初始訓練集中的約有63.2%的樣本出現在採樣集中。

3、基於上述採樣好的訓練集訓練m個基學習器,再將這些基學習器進行結合,在對預測輸出進行結合的時候,Bagging通常對分類任務使用簡單的投票法,對迴歸任務使用簡單的平均法。

從偏差-方差分解的角度看,Bagging主要關注降低方差。


隨機森林(Random Forest,RF)

隨機森林是一個包含多個決策樹的分類器, 並且其輸出的類別是由個別樹輸出的類別的衆數而定。

組成結構:Bagging + 決策樹 = 隨機森林

隨機森林具體如何構建呢?有兩個方面:數據的隨機性選取,以及待選特徵的隨機選取

用bootstrap方法生成m個訓練集,然後,對於每個訓練集,構造一顆決策樹,在節點找特徵進行分裂的時候,並不是對所有特徵找到能使得指標(如信息增益)最大的,而是在特 徵中隨機抽取一部分特徵,在抽到的特徵中間找到最優解,應用於節點,進行分裂

優點
1、具有極高的準確率
2、隨機性的引入,使得隨機森林不容易過擬合
3、隨機性的引入,使得隨機森林有很好的抗噪聲能力
4、能處理很高維度的數據,並且不用做特徵選擇


Bagging與Boosting區別

樣本選擇上:Bagging採用的是Bootstrap隨機有放回抽樣;而Boosting每一輪的訓練集是不變的,改變的只是每一個樣本的權重。

樣本權重:Bagging使用的是均勻取樣,每個樣本權重相等;Boosting根據錯誤率調整樣本權重,錯誤率越大的樣本權重越大。

預測函數:Bagging所有的預測函數的權重相等;Boosting中誤差越小的預測函數其權重越大。

並行計算:Bagging各個預測函數可以並行生成;Boosting各個預測函數必須按順序迭代生成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章