Bagging與隨機森林

2021-09-12 07:59:16 字數 3506 閱讀 7339

前今天整理了決策樹的原理實現,順手再把隨機森林的原理整理整理。

bagging是並行式整合學習方法最著名的代表,其原理是給定包含m個樣本的資料集,我們先隨機取出乙個樣本放入取樣集中,再把該樣本放回初始資料集(有放回),這樣經過m此隨機取樣操作,我們得到含有m個樣本的取樣集。照這樣,我們可取樣出t個含m個訓練樣本的取樣集,然後基於每個取樣集訓練乙個基學習器,再將這些基學習器進行結合,這就是bagging的基本流程。bagging的演算法描述如下:

假定基學習器的計算複雜度為o(m),則bagging的複雜度大致為t(o(m)+o(s)),考慮到取樣與投票/平均的複雜度o(s)很小,而t通常是乙個不太大的常數,因此,訓練乙個bagging整合與直接使用基學習演算法訓練乙個學習器的複雜度同階,這說明bagging是乙個很高效的整合學習演算法。

bagging是一種整合思想,基學習器不僅可以是決策樹還可以是神經網路等。

接自決策樹的原理詳解。隨機森林是bagging的乙個擴充套件變體,rf在以決策樹為基學習器構建bagging整合的基礎上,進一步加入了隨機屬性的選擇,從所有屬性d中隨機選取k個屬性,選擇最佳分割屬性作為節點建立cart決策樹(泛化的理解,這裡面也可以是其他型別的分類器,比如svm、logistics),減小特徵選擇個數k,樹的相關性和分類能力也會相應的降低;增大k,兩者也會隨之增大。所以關鍵問題是如何選擇最優的k,一般情況下推薦值k=log2 d.

2.1隨機森林的生成

由於同一批資料,用同樣的演算法只能產生一棵樹,而我們的森林顯然不希望只有一種樹,這時bagging策略可以幫助我們產生不同的資料集。bagging策略**於bootstrap aggregation:從樣本集(假設樣本集n個資料點)中重取樣選出n個樣本(有放回的取樣,樣本資料點個數仍然不變為n),在所有樣本上,對這n個樣本建立分類器(id3\c4.5\cart\svm\logistic),重複以上兩步m次,獲得m個分類器,最後根據這m個分類器的投票結果,決定資料屬於哪一類。

隨機森林分類效果(錯誤率)與兩個因素有關:

森林中任意兩棵樹的相關性:相關性越大,錯誤率越大;

森林中每棵樹的分類能力:每棵樹的分類能力越強,整個森林的錯誤率越低。

經過上述的隨機森林生成步驟後,生成各種類別的子樹,當輸出時,每個基學習器都會生成乙個結果,如何將這些結果集成為唯一的輸出就是結合策略所解決的問題。在對**輸出進行結合時,bagging通常對分類任務使用簡單投票法,對回歸任務使用簡單平均法。

3.1 平均法

由於各個基學習器的權值在訓練中得出,隨機抽樣時有大約1/3的樣本不會被乙個學習器抽到,因此可以用未抽到的作為驗證集,根據驗證集在此學習器的正確率來計算此學習器的權值。

一般而言,在個體學習器效能相差較大時宜使用加權平均法,在個體學習器效能相差較小時宜使用簡單平均法。

3.2 投票法

3.2.1絕對多數投票法(若某類別概率超過0.5則輸出該標記)

3.2.2 相對多數投票法(輸出標記為概率最高的乙個標記)

3.2.3加權投票法

3.3學習法

stacking描述:先從初始資料集中訓練出初級學習器,然後「生成」乙個新資料集用於訓練次級學習器。在新資料集中,初級學習器的輸出被當做樣例輸入特徵,初始樣本的標記仍被當做樣例標記。

隨機森林在bagging的基礎上更進一步:

樣本的隨機:從樣本集中用bootstrap隨機選取n個樣本

特徵的隨機:從所有屬性中隨機選取k個屬性,選擇最佳分割屬性作為節點建立cart決策樹(泛化的理解,這裡面也可以是其他型別的分類器,比如svm、logistics)

重複以上兩步m次,即建立了m棵cart決策樹

這m個cart形成隨機森林,通過投票表決結果,決定資料屬於哪一類(投票機制有一票否決制、少數服從多數、加權多數)

即在bagging策略基礎上,新增了對特徵的隨機選擇,從2個方面進行構建決策樹之後再整合。隨機森林的訓練效率常優於bagging,因為在個體決策樹的構建過程中,bagging使用的是"確定型"決策樹,在劃分屬性時要對結點的所有屬性進行考察,而隨機森林使用的時「隨機型」決策樹則之考察乙個屬性子集。

利用python的兩個模組,分別為pandas和scikit-learn來實現隨機森林。

Bagging與隨機森林

給定包含 m 個樣本的資料集 d,我們對它進行取樣產生資料集 d 每次隨機從 d 中挑選乙個樣本,將其拷貝放入 d 然後再將該樣本放回初始資料集 d 中,使得該樣本在下次取樣時仍有可能被採到 這個過程重複執行 m次後,我們就得到了包含 m 個樣本的資料集 d 這就是自助取樣的結果。顯然,d 中有一部...

Bagging 隨機森林

bagging是n個相互無信賴的弱學習器,通過一定的策略,得到乙個強學習器。bagging乙個主要的特點是隨機取樣,bagging是有放回的取樣。對於乙個有m個樣本的資料集,每次採集乙個樣本,被採的概率是 frac 不被採的概率是 1 frac 如果m次取樣都沒有被採中的概率是 1 frac m 當...

Bagging演算法與隨機森林

給定包含m個樣本的資料集d,我們對它進行取樣產生資料集d 每次隨機從d中挑選乙個樣本,將其拷貝放入d 然後再將該樣本放回初始資料集d中,使得該樣本在下次取樣時仍有可能被取樣到 這個過程重複執行m次後,我們就得到了包含m個樣本的資料集d 這就是自助取樣的結果。顯然有一部分樣本會在d 中出現多次,而另一...