當前位置:菜譜大全網 - 素菜食譜大全 - 隨機森林

隨機森林

隨機森林是壹種集成算法(Ensemble Learning),它屬於Bagging類型,通過組合多個弱分類器,最終結果通過投票或取均值,使得整體模型的結果具有較高的精確度和泛化性能。其可以取得不錯成績,主要歸功於 "隨機"和“森林” ,壹個使它具有抗過擬合能力,壹個使它更加精準。

Bagging 是壹種在原始數據集上通過有放回抽樣重新選出k個新數據集來訓練分類器的集成技術。它使用訓練出來的分類器的集合來對新樣本進行分類,然後用多數投票或者對輸出求均值的方法統計所有分類器的分類結果,結果最高的類別即為最終標簽。此類算法可以有效降低bias,並能夠降低variance。

自助法 它通過自助法(bootstrap)重采樣技術,從訓練集裏面采集固定個數的樣本,但是每采集壹個樣本後,都將樣本放回。也就是說,之前采集到的樣本在放回後有可能繼續被采集到。

OOB 在Bagging的每輪隨機采樣中,訓練集中大約有36.5%的數據沒有被采樣集采集中。 對於這部分沒有采集到的數據,我們常常稱之為袋外數據(Out of Bag, 簡稱OOB) 。這些數據沒有參與訓練集模型的擬合,因此可以用來檢測模型的泛化能力。

隨機性 對於我們的Bagging算法,壹般會對樣本使用boostrap進行隨機采集,每棵樹采集相同的樣本數量,壹般小於原始樣本量。這樣得到的采樣集每次的內容都不同 ,通過這樣的自助法生成K個分類樹組成隨機森林,做到樣本隨機性 。

輸出 Bagging的集合策略也比較簡單,對於分類問題,通常使用簡單投票法,得到最多票數的類別或者類別之壹為最終的模型輸出。對於回歸問題,通常使用簡單平均法,對T個弱學習器得到的回歸結果進行算術平均得到的最終的模型輸出。

弱分類器 首先,RF使用了CART決策樹作為弱學習器。換句話說,其實我們只是將實驗CART決策樹作為弱學習器的Bagging方法稱為隨機森林。

隨機性 同時,在生成每棵樹的時候, 每個樹選取的特征都不僅僅是隨機選出的少數特征,壹般默認取特征總數m的開方。 而壹般的CART樹則會選取全部的特征進行建模。因此 ,不但特征是隨機的,也保證了特征隨機性 。

樣本量 相對於壹般的Bagging算法,RF會選擇采集和訓練集樣本數N壹樣個數的樣本。、

特點 由於隨機性,對於降低模型的方差很有作用,故隨機森林壹般不需要額外剪枝,即可以取得較好的泛化能力和抗擬合能力(Low Variance)。當然對於訓練集的擬合程度就會差壹點,也就是模型的偏倚會大壹些(High Bias),僅僅是相對的。

在關於隨機森林的原始論文中,顯示隨機森林錯誤率取決於兩件事:

?森林中任何兩棵樹之間的相關性。增加相關性會增加森林錯誤率。

?森林中每棵樹的力量(具有低錯誤率的樹是強分類器)。增加單棵數據的強度(分類更精確)會降低森林錯誤率。

隨機森林的弱分類器使用的是CART樹,CART決策樹又稱為分類回歸樹。當數據集的因變量為連續型數值時,該樹算法就是壹個回歸樹,可以用葉節點觀察的均值作為預測值;當數據集的因變量為離散型數值時,該樹算算法就是壹個分類樹,可以很好地解決分類問題。但是需要註意的是,該算法是壹個二叉樹,即每壹個葉節點只能引申出兩個分支,所以當某個非葉節點是多水平(2個以上)的離散變量時,該變量就有可能被多次使用。同時,若某個非葉節點是連續變量時,決策樹也將把他當做離散變量來處理(即在有限的可能值中做劃分)。

特征選擇目前比較流行的方法是信息增益、增益率、基尼系數和卡方檢驗。這裏主要介紹基於基尼系數(Gini)的特征選擇,因為隨機森林采用的CART決策樹就是基於基尼系數選擇特征的。

基尼系數的選擇的標準就是每個子節點達到最高的純度,即落在子節點中的所有觀察都屬於同壹分類,此時基尼系數最小,純度最高,不確定度最小。對於壹般的決策樹,加入總***有K類,樣本屬於第K類的概率:pk,則該概率分布的基尼指數為:

基尼指數越大,說明不確定性就越大;基尼系數越小,不確定性越小,數據分割越徹底,越幹凈。

對於CART樹而言,由於是二叉樹,可以通過下面的表示:

在我們遍歷每個特征的每個分割點時,當使用特征A=a,將D劃分為兩部分,即D1(滿足A=a的樣本集合),D2(不滿足A=a的樣本集合)。則在特征A=a的條件下D的基尼指數為:

Gini(D):表示集合D的不確定性。

Gini(A,D):表示經過A=a分割後的集合D的不確定性。

隨機森林中的每棵CART決策樹都是通過不斷遍歷這棵樹的特征子集的所有可能的分割點,尋找Gini系數最小的特征的分割點,將數據集分成兩個子集,直至滿足停止條件為止。

首先,正如Bagging介紹中提到的,每個樹選擇使用的特征時,都是從全部m個特征值隨機產生的,本身就已經降低了過擬合的風險和趨勢。模型不會被特定的特征值或特征組合所決定,隨機性的增加,將控制模型的擬合能力不會無限提高。

第二,與決策樹不同,RF對決策樹的簡歷做了改進。對於普通的決策樹,我們會在節點上所有的m個樣本特征中選擇壹個最優的特征來做決策樹的左右子樹劃分。但是RF的每個樹,其實選用的特征是壹部分,在這些少量特征中,選擇壹個最優的特征來做決策樹的左右子樹劃分,將隨機性的效果擴大,進壹步增強了模型的泛化能力。

假設每棵樹選取msub個特征,msub越小,此時模型對於訓練集的擬合程度會變差,偏倚增加,但是會泛化能力更強,模型方差減小。msub越大則相反。在實際使用中,壹般會將msub的取值作為壹個參數,通過開啟OOB驗證或使用交叉驗證,不斷調整參數以獲取壹個合適的msub的值。

優點:

(1)由於采用了集成算法,本身精度比大多數單個算法要好。

(2)在測試集上表現良好,由於兩個隨機性的引入,使得隨機森林不容易陷入過擬合( 樣本隨機,特征隨機 )

(3)在工業上,由於兩個隨機性的引入,使得隨機森林具有壹定的抗噪聲能力,對比其他算法具有壹定優勢。

(4)由於樹的組合,使得隨機森林可以處理非線性數據,本身屬於非線性分類(擬合)模型。

(5) 它能夠處理很高維度(feature很多)的數據 ,並且不用做特征選擇,對數據集的適應能力強:既能處理離散型數據,也能處理連續型數據,數據集無需規範化。

(6)訓練速度快,可以運用在大規模數據集上。

(7)由於袋外數據(OOB),可以在模型生成過程中取得真實誤差的無偏估計,且不損失訓練數據量。

(8)在訓練過程中,能夠檢測到feature間的互相影響, 且可以得出feature的重要性 ,具有壹定參考意義。

(9)由於每棵樹可以獨立、同時生成,容易做成並行化方法。

(10)由於實現簡單、 精度高、抗過擬合能力強 ,當面對非線性數據時,適於作為基準模型。

缺點:

(1)隨機森林在解決回歸問題時,並沒有像它在分類中表現的那麽好,這是因為它並不能給出壹個連續的輸出。當進行回歸時,隨機森林不能夠作出超越訓練集數據範圍的預測,這可能導致在某些特定噪聲的數據進行建模時出現過擬合。(PS:隨機森林已經被證明在某些噪音較大的分類或者回歸問題上會過擬合)

(2)對於許多統計建模者來說,隨機森林給人感覺就像壹個黑盒子,妳無法控制模型內部的運行。只能在不同的參數和隨機種子之間進行嘗試。

(3)可能有很多相似的決策樹,掩蓋了真實的結果。

(4)對於小數據或者低維數據(特征較少的數據),可能不能產生很好的分類。( 處理高維數據,處理特征遺失數據,處理不平衡數據是隨機森林的長處 )。

(5)執行數據雖然比boosting等快,但是比單棵決策樹慢多了。

(1) 不要求是線性特征,比如邏輯回歸很難處理類別型特征 ,而樹模型,是壹些決策樹的集合,可以很容易的處理這些情況。

(2) 由於算法構建的過程,這些算法很容易處理高維的數據,大量的訓練數據的場景 。

極端隨機樹是隨機森林的壹個變種,原理幾乎和RF壹模壹樣,僅有區別有:

(1)對於每個決策樹的訓練集,RF采用的是隨機采樣bootstrap來選擇采樣集作為每個決策樹的訓練集,而extra trees壹般不采用隨機采樣,即每個決策樹采用原始訓練集。

(2)在選定了劃分特征後,RF的決策樹會基於基尼系數,均方差之類的原則,選擇壹個最優的特征值劃分點,這和傳統的決策樹相同。但是極端隨機樹比較的激進,他會隨機的選擇壹個特征值來劃分決策樹。