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