隨機(jī)森林(RandomForest)是一類專門為決策樹分類器設(shè)計的組合方法晌纫,關(guān)于組合方法可以參考http://www.reibang.com/p/9e4db2759866
中提到的組合方法相關(guān)內(nèi)容退客。
決策樹的內(nèi)容參考http://www.reibang.com/p/15574050fdd2
隨機(jī)森林采用裝袋的方式來有放回的抽樣取得訓(xùn)練集冠跷。
簡要原理
創(chuàng)建隨機(jī)的多個訓(xùn)練集之后不跟,對每一個訓(xùn)練集生成一個決策樹犬性,將這些決策樹組合起來形成隨機(jī)森林泥耀。
生成樹的方法有如下幾種:
- 隨機(jī)選擇F個輸入特征來生成決策樹神郊,讓樹完全生長迅办,不進(jìn)行任何修剪宅静,等全部生成完畢之后,使用多數(shù)表決的方法來組合預(yù)測站欺。
隨機(jī)森林的強(qiáng)度和相關(guān)性都取決于F的大小姨夹,如果F足夠小纤垂,那么樹的相關(guān)性減弱,而另一方面磷账,樹分類器的強(qiáng)度隨著F的增加而提高峭沦,作為折中,一般選擇逃糟,其中d為所有輸入的特征數(shù)吼鱼。
如果d的數(shù)目太小,那么很難選擇一個獨立的隨機(jī)特征集來建立決策樹绰咽,那么可以創(chuàng)建輸入特征的線性組合菇肃,在每一個節(jié)點,新特征通過隨機(jī)選擇L個輸入特征來創(chuàng)建取募,這些輸入特征用區(qū)間[-1,1]熵的均勻分布產(chǎn)生的系數(shù)進(jìn)行線性結(jié)合琐谤,每個節(jié)點產(chǎn)生F個這種隨機(jī)組合的新特征。
在決策樹的每一個節(jié)點玩敏,從F個最佳化分鐘隨機(jī)選擇一個斗忌。隨機(jī)森林分類效果(錯誤率)與兩個因素有關(guān):
森林中任意兩棵樹的相關(guān)性:
- 相關(guān)性越大,錯誤率越大旺聚;
- 森林中每棵樹的分類能力:每棵樹的分類能力越強(qiáng)织阳,整個森林的錯誤率越低。
減小特征選擇個數(shù)F翻屈,樹的相關(guān)性和分類能力也會相應(yīng)的降低陈哑;增大F,兩者也會隨之增大伸眶。所以關(guān)鍵問題是如何選擇最優(yōu)的F(或者是范圍),這也是隨機(jī)森林唯一的一個參數(shù)刽宪。
袋外錯誤率(OOB)
構(gòu)建隨機(jī)森林的另一個關(guān)鍵問題就是如何選擇最優(yōu)的F(特征個數(shù))厘贼,要解決這個問題主要依據(jù)計算袋外錯誤率oob error(out-of-bag error)。
隨機(jī)森林有一個重要的優(yōu)點就是圣拄,沒有必要對它進(jìn)行交叉驗證或者用一個獨立的測試集來獲得誤差的一個無偏估計嘴秸。它可以在內(nèi)部進(jìn)行評估,也就是說在生成的過程中就可以對誤差建立一個無偏估計庇谆。
我們知道岳掐,在構(gòu)建每棵樹時,我們對訓(xùn)練集使用了不同的bootstrap sample(隨機(jī)且有放回地抽确苟)串述。所以對于每棵樹而言(假設(shè)對于第k棵樹),大約有1/3的訓(xùn)練實例沒有參與第k棵樹的生成寞肖,它們稱為第k棵樹的oob樣本纲酗。
而這樣的采樣特點就允許我們進(jìn)行oob估計衰腌,它的計算方式如下:
(note:以樣本為單位)
1)對每個樣本,計算它作為oob樣本的樹對它的分類情況(約1/3的樹)觅赊;
2)然后以簡單多數(shù)投票作為該樣本的分類結(jié)果右蕊;
3)最后用誤分個數(shù)占樣本總數(shù)的比率作為隨機(jī)森林的oob誤分率。
oob誤分率是隨機(jī)森林泛化誤差的一個無偏估計吮螺,它的結(jié)果近似于需要大量計算的k折交叉驗證。
簡而言之鸠补,就是把原樣本中沒有被抽樣到的樣本x代入到某個對應(yīng)的決策樹中(該決策樹肯定是沒有抽到x的)坯约,之后也用隨機(jī)森林的方式多數(shù)表決求得分類,把所有樣本中錯誤分類的占比作為OOB錯誤率堕花。
結(jié)合訓(xùn)練集和測試集的思想來對比就可以了缘挽。
例子
描述:根據(jù)已有的訓(xùn)練集已經(jīng)生成了對應(yīng)的隨機(jī)森林呻粹,隨機(jī)森林如何利用某一個人的年齡(Age)腮郊、性別(Gender)、教育情況(Highest Educational Qualification)筹燕、工作領(lǐng)域(Industry)以及住宅地(Residence)共5個字段來預(yù)測他的收入層次轧飞。
收入層次 :
Band 1 : Below $40,000
Band 2: $40,000 – 150,000
Band 3: More than $150,000
隨機(jī)森林中每一棵樹都可以看做是一棵CART(分類回歸樹),這里假設(shè)森林中有5棵CART樹撒踪,總特征個數(shù)N=5过咬,我們?nèi)=1(這里假設(shè)每個CART樹對應(yīng)一個不同的特征)。
CART 1 : Variable Age
CART 2 : Variable Gender
CART 3 : Variable Education
CART 4 : Variable Residence
CART 5 : Variable Industry
我們要預(yù)測的某個人的信息如下:
1. Age : 35 years ; 2. Gender : Male ; 3. Highest Educational Qualification : Diploma holder; 4. Industry : Manufacturing; 5. Residence : Metro.
根據(jù)這五棵CART樹的分類結(jié)果制妄,我們可以針對這個人的信息建立收入層次的分布情況:
最后掸绞,我們得出結(jié)論,這個人的收入層次70%是一等忍捡,大約24%為二等集漾,6%為三等切黔,所以最終認(rèn)定該人屬于一等收入層次(小于$40,000)。
隨機(jī)森林算法的特點
該算法具有良好的普適性具篇,無論是分類纬霞、多分類、回歸都可以做驱显,而且準(zhǔn)確率很高诗芜,對噪聲更加魯棒,同時運(yùn)行效率比AdaBoost更好埃疫。
參考:https://blog.csdn.net/yangyin007/article/details/82385967