隨機森林算法原理
集成學習有兩個流派,一個是boosting,特點是各個弱學習器之間有依賴關系;一個是bagging,特點是各個弱學習器之間沒依賴關系,可以并行擬合。
1. bagging的原理
在集成學習原理總結中,給出bagging的原理圖。
?。?)、Bagging的特點“隨機采樣”。隨機采集跟訓練集個數m相同的樣本,采集T次。得到采樣集。
?。ㄗ⒁猓篏BDT(Gradient Boosted Decision Tree)的子采樣是無放回采樣,而Bagging的子采樣是放回采樣。)
?。?)、對于一個樣本,在m個樣本的隨機采樣中,每次被采集到的概率是1/m。
在m次采樣中沒有采集到的概率是:
對m取極限得到:
也就是說bagging的每輪隨機采樣中,訓練集大約有36.8%的數據沒被采集。
對于大約36.8%沒被采樣的數據,稱為“袋外數據”。這些數據沒參與訓練集模型的擬合,但可以作為測試集用于測試模型的泛化能力,這樣的測試結果稱為“外包估計”。
?。?)、bagging對于弱學習器沒有限制,這和Adaboost一樣。但是最常用的一般也是決策樹和神經網絡。
?。?)、bagging的結合策略也比較簡單,對于分類問題,通常使用簡單投票法,得到最多票數的類別或者類別之一為最終的模型輸出。對于回歸問題,通常使用簡單平均法,對T個弱學習器得到的回歸結果進行算術平均得到最終的模型輸出。
由于Bagging算法每次都進行采樣來訓練模型,因此泛化能力很強,對于降低模型的方差很有作用。當然對于訓練集的擬合程度就會差一些,也就是模型的偏倚會大一些。
2. bagging算法流程
相對于Boosting系列的Adaboost和GBDT,bagging算法簡單的多。
輸入樣本集,弱學習器算法,迭代次數T。
輸出為最終的強分類器 f(x)
?。?)對于 t = 1,2,。。.,T:
對訓練街進行第t次隨機采樣,共采集m次,得到包含m個樣本的采樣集Dt
用采樣集Dt訓練第 t 個弱學習器Gt(x)
(2)如果是分類算法預測,則T個弱學習器投出最多票數的類別或者類別之一為最終類別。如果是回歸算法,T個弱學習器得到的回歸結果進行算術平均得到的值為最終的模型輸出。
3. 隨機森林算法
RF(Random Forest)算法是對Bagging算法進行了改進。
首先,RF使用了CART決策樹作為弱學習器,這讓我們想到梯度提升樹GBDT。
第二,在使用決策樹的基礎上,RF對決策樹的建立做了改進,對于普通的決策樹,我們會在節點上所有的n個樣本特征中選擇一個最優的特征來做決策樹的左右子樹劃分,但是RF通過的隨機選擇節點上的一部分樣本特征,這個數字小于n,假設為nsub,然后在這些隨機選擇的nsub(小于n)個樣本特征中,選擇一個最優的特征來做決策樹的左右子樹劃分。這樣進一步增強了模型的泛化能力。
除了上面兩點,RF和普通的bagging算法沒什么不同,下面簡單總結下RF的算法。
輸入為樣本集,弱分類器迭代次數T。
輸出為最終的強分類器f(x)
?。?)對于t = 1,2,3,。。.,T;
對訓練集進行第t次采樣,共采集m次,得到包含m個樣本的采樣集Dt
用采樣集Dt訓練第t個決策樹模型Gt(x),在訓練決策樹模型的節點的時候,在節點上所有的樣本特征中選擇一部分樣本特征,在這些隨機選擇的部分樣本特征中選擇一個最優的特征來做決策樹的左右子樹劃分。
(2)如果是分類算法預測,則T個弱學習器投出最多票數的類別或者類別之一為最終類別。如果是回歸算法,T個弱學習器得到的回歸結果進行算術平均得到的值為最終的模型輸出。
4. 隨機森林的推廣
RF不僅用于分類問題,還可以用于特征轉換,異常點檢測等。
4.1 extra trees
extra trees是RF的變種,原理幾乎與RF一模一樣,僅有的區別:
(1)對于每個決策樹的訓練,RF采用的是隨機采樣bootstrap來選擇采樣集作為每個決策樹的訓練集,而extra trees一般不采用隨機采樣,即每個決策樹采用的原始訓練集。
?。?)在選定了劃分特征后,RF的決策樹會基于基尼系數,均方差之類的原則,選擇一個最優的特征劃分點,這和傳統的決策樹相同。但是extra trees比較的激進,他會隨機的選擇一個特征值來劃分決策樹。
4.2 Totally Random Trees Embedding
Totally Random Trees Embedding(以下簡稱 TRTE)是一種非監督學習的數據轉化方法。它將低維的數據集映射到高維,從而讓映射到高維的數據更好的運用于分類回歸模型。我們知道,在支持向量機中運用核方法來將低維的數據集映射到高維,此處TRTE提供了另外一種方法。
TRTE在數據轉化的過程也使用了類似于RF的方法,建立T個決策樹來擬合數據。當決策樹建立完畢后,數據集里的每個數據在T個決策樹中葉子節點的位置也定下來了。比如我們有3個決策樹,每個決策樹有5個葉子節點,某個數據特征x劃分到第一個決策樹的第2個葉子節點,第二個決策樹的第3個葉子節點,第三個決策樹的第5個葉子節點。則x映射后的特征編碼為(0,1,0,0,0, 0,0,1,0,0, 0,0,0,0,1),有15維的高維特征。這里特征維度之間加上空格是為了強調三個決策樹各自的子編碼。
映射到高維特征后,可以繼續使用監督學習的各種分類回歸算法。
5. 隨機森林小結
RF的算法原理也終于講完了,作為一個可以高度并行化的算法,RF在大數據時候大有可為。
RF的主要優點有:
1) 訓練可以高度并行化,對于大數據時代的大樣本訓練速度有優勢。個人覺得這是的最主要的優點。
2) 由于可以隨機選擇決策樹節點劃分特征,這樣在樣本特征維度很高的時候,仍然能高效的訓練模型。
3) 在訓練后,可以給出各個特征對于輸出的重要性
4) 由于采用了隨機采樣,訓練出的模型的方差小,泛化能力強。
5) 相對于Boosting系列的Adaboost和GBDT, RF實現比較簡單。
6) 對部分特征缺失不敏感。
RF的主要缺點有:
1)在某些噪音比較大的樣本集上,RF模型容易陷入過擬合。
2) 取值劃分比較多的特征容易對RF的決策產生更大的影響,從而影響擬合的模型的效果。
隨機森林算法的優缺點
1、隨機森林算法優點
由于采用了集成算法,本身精度比大多數單個算法要好,所以準確性高
在測試集上表現良好,由于兩個隨機性的引入,使得隨機森林不容易陷入過擬合(樣本隨機,特征隨機)
在工業上,由于兩個隨機性的引入,使得隨機森林具有一定的抗噪聲能力,對比其他算法具有-定優勢
由于樹的組合,使得隨機森林可以處理非線性數據,本身屬于非線性分類(擬合)模型
它能夠處理很高維度(feature很多)的數據,并且不用做特征選擇,對數據集的適應能力強:既能處理離散型數據,也能處理連續型數據,數據集無需規范化
訓練速度快,可以運用在大規模數據集上
可以處理缺省值(單獨作為一類) ,不用額外處理
由于有袋外數據(OOB) ,可以在模型生成過程中取得真實誤差的無偏估計,且不損失訓練數據量
在訓練過程中,能夠檢測到feature間的互相影響,且可以得出feature的重要性,具有一定參考意義
由于每棵樹可以獨立、同時生成,容易做成并行化方法
由于實現簡單、精度高、抗過擬合能力強,當面對非線性數據時,適于作為基準模型
2、隨機森林算法缺點
當隨機森林中的決策樹個數很多時,訓練時需要的空間和時間會比較大
隨機森林中還有許多不好解釋的地方,有點算是黑盒模型
在某些噪音比較大的樣本集上,RF的模型容易陷入過擬合
責任編輯:YYX
評論
查看更多