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