回顧前文對(duì)bagging的定義:
1.bagging(Bootstrap Aggregating):針對(duì)獨(dú)立的同質(zhì)弱學(xué)習(xí)器,相互獨(dú)立地并行學(xué)習(xí)這些弱學(xué)習(xí)器渔肩,并按照某種確定性的平均過程將它們組合起來贬墩。(注意這里所說的獨(dú)立并不是絕對(duì)的獨(dú)立榴嗅,只是沒有強(qiáng)依賴關(guān)系)
本篇說一下bagging中的隨機(jī)森林。
1 bagging的另一個(gè)優(yōu)點(diǎn)——OOB
我們知道陶舞,bagging因?yàn)闃颖倦S機(jī)抽樣嗽测,是基學(xué)習(xí)器沒有強(qiáng)依賴關(guān)系,所以有降低方差的優(yōu)點(diǎn)肿孵,除此之外唠粥,隨機(jī)抽樣還帶來了另外的一個(gè)好處。因?yàn)閎agging對(duì)訓(xùn)練集使用有放回的隨機(jī)采樣停做,所以會(huì)形成一個(gè)獨(dú)特的袋外數(shù)據(jù)(Out Of Bag, OOB)晤愧,這部分?jǐn)?shù)據(jù)是在bagging的每輪隨機(jī)采樣中,沒有被采到的數(shù)據(jù)蛉腌,可以用作測(cè)試集檢測(cè)模型的泛化能力官份。這個(gè)袋外數(shù)據(jù)是怎么出現(xiàn)的呢?
對(duì)于一個(gè)樣本點(diǎn)烙丛,它在某一次訓(xùn)練集的隨機(jī)采樣中贯吓,每次被采集到的概率是1/m。不被采集到的概率為1?1/m蜀变。如果m次采樣都沒有被采集中的概率是悄谐。當(dāng)時(shí),库北。也就是說爬舰,在bagging的每輪隨機(jī)采樣中们陆,訓(xùn)練集中大約有36.8%的數(shù)據(jù)沒有被采到,這就是袋外數(shù)據(jù)情屹。OOB的測(cè)試已被證明是無偏估計(jì)坪仇,所以在隨機(jī)森林算法中不需要再進(jìn)行交叉驗(yàn)證或者劃分單獨(dú)的測(cè)試集來獲取測(cè)試集誤差的無偏估計(jì)。
2 從bagging到隨機(jī)森林
隨機(jī)森林是做了一點(diǎn)改進(jìn)的bagging模型垃你,當(dāng)然其還是屬于bagging的椅文,上一篇我們已經(jīng)對(duì)bagging做了一些介紹,現(xiàn)在來看一下構(gòu)建bagging模型的一般流程:
輸入:樣本集惜颇、弱學(xué)習(xí)器算法皆刺、弱分類器迭代次數(shù)。
輸出:最終的強(qiáng)分類器凌摄。(1)對(duì)于
- 對(duì)訓(xùn)練集進(jìn)行第次隨機(jī)有放回的采樣羡蛾,共采集次,得到包含個(gè)樣本的采樣集锨亏;
- 用采樣集訓(xùn)練第個(gè)弱學(xué)習(xí)器痴怨;
(2) 弱學(xué)習(xí)器的結(jié)合
- 如果是分類問題,個(gè)弱學(xué)習(xí)器投出最多票數(shù)的類別或者類別之一為最終類別器予;
- 如果是回歸問題浪藻,個(gè)弱學(xué)習(xí)器得到的回歸結(jié)果進(jìn)行算術(shù)平均得到的值為最終的模型輸出。
隨機(jī)森林對(duì)bagging所做的改進(jìn)是:不止對(duì)訓(xùn)練集數(shù)據(jù)進(jìn)行隨機(jī)采樣乾翔,還對(duì)樣本特征進(jìn)行隨機(jī)采樣珠移,即假如本來樣本有100個(gè),隨機(jī)森林的一個(gè)基學(xué)習(xí)器只隨機(jī)選擇其中的80個(gè)進(jìn)行訓(xùn)練末融,這樣的做法增強(qiáng)了基學(xué)習(xí)器之間的差異和獨(dú)立性,按上一篇的分析暇韧,這可能會(huì)是的集成模型的方差Variance更小勾习,泛化能力更強(qiáng),同時(shí)也增加了模型對(duì)噪聲的抗性懈玻,對(duì)缺失值的敏感性降低(本身就是用缺失了特征的數(shù)據(jù)訓(xùn)練出來的)巧婶。基于這樣的做法涂乌,隨機(jī)森林的流程為:
輸入:樣本集艺栈、弱學(xué)習(xí)器算法、弱分類器迭代次數(shù)湾盒。
輸出:最終的強(qiáng)分類器湿右。(1)對(duì)于
- 對(duì)訓(xùn)練集進(jìn)行第次隨機(jī)有放回的采樣,共采集次罚勾,得到包含個(gè)樣本的采樣集毅人;
- 在采樣集中隨機(jī)選擇m個(gè)特征形成訓(xùn)練集吭狡,使用訓(xùn)練第個(gè)決策樹;
(2) 弱學(xué)習(xí)器的結(jié)合
- 如果是分類問題丈莺,個(gè)弱學(xué)習(xí)器投出最多票數(shù)的類別或者類別之一為最終類別划煮;
- 如果是回歸問題,個(gè)弱學(xué)習(xí)器得到的回歸結(jié)果進(jìn)行算術(shù)平均得到的值為最終的模型輸出缔俄。
在特征選擇的過程中弛秋,對(duì)于一個(gè)包含 p 個(gè)特征的分類問題,可以在每次劃分時(shí)使用 個(gè)特征俐载;對(duì)于回歸問題蟹略,推薦 但不少于 5 個(gè)特征。 (A Data Complexity Analysis of Comparative Advantages of Decision Forest Constructors)
隨機(jī)森林因?yàn)槠涮烊唤档头讲畹哪芰ο固郏词箚蝹€(gè)樹模型的預(yù)測(cè)對(duì)訓(xùn)練基的噪聲非常敏感科乎,但對(duì)于多個(gè)樹模型,只要這些樹并不相關(guān)贼急,這種情況就不會(huì)出現(xiàn)茅茂,因此隨機(jī)森林一般不會(huì)過擬合,所以隨機(jī)森林中的決策樹一般也不需要剪枝太抓,讓其自由生長即可空闲,理論上來說決策樹越多方差越小,不過樹太多的話計(jì)算量會(huì)更大走敌,所以在使用隨機(jī)森林時(shí)最重要的參數(shù)就是決策樹的數(shù)量碴倾,樹太少了可能欠擬合,太多了效率太低掉丽。
3 隨機(jī)森林的一些特點(diǎn)
3.1 隨機(jī)森林獲取特征重要性
隨機(jī)森林可以輸出特征的重要性排名跌榔,當(dāng)然這個(gè)重要性是針對(duì)隨機(jī)森林算法來說的,換成別的學(xué)習(xí)器排名估計(jì)就不一樣了捶障,因?yàn)閷W(xué)習(xí)的原理不同嘛僧须,我們來看看隨機(jī)森林是怎么計(jì)算特征的重要性的:
- 使用訓(xùn)練集訓(xùn)練一個(gè)隨機(jī)森林模型,在訓(xùn)練過程中記錄下每棵樹的out-of-bag每個(gè)數(shù)據(jù)點(diǎn)誤差项炼,然后在整個(gè)森林上進(jìn)行平均得到担平;
- 為了度量第個(gè)特征的重要性,在訓(xùn)練數(shù)據(jù)中把第個(gè)特征的值被打亂(比如隨機(jī)改變第個(gè)特征的值)锭部,并重新計(jì)算打亂后的數(shù)據(jù)的out-of-bag誤差暂论,平均后得到;
- 計(jì)算打亂前后的out-of-bag誤差的差值拌禾,即為第個(gè)特征的重要性分?jǐn)?shù)取胎,值越大說明特征越重要。其邏輯是加入隨機(jī)噪聲后湃窍,袋外數(shù)據(jù)準(zhǔn)確率大幅度下降(即上升)扼菠,說明這個(gè)特征對(duì)于樣本的預(yù)測(cè)結(jié)果有很大影響摄杂,即可說明重要程度比較高。
*該方法中對(duì)數(shù)據(jù)進(jìn)行打亂的方法通常有兩種:
1)使用gaussian抽取隨機(jī)值替換原特征值循榆;
2)將所有樣本的第個(gè)特征值重新打亂分布(推薦)析恢。
3.2 隨機(jī)森林在回歸問題上的缺陷
隨機(jī)森林在回歸中的非線性特性使其比線性算法更具普適性優(yōu)勢(shì)。不過其缺陷是隨機(jī)森林無法向外推斷秧饮,即它只能在訓(xùn)練數(shù)據(jù)有的值域范圍內(nèi)進(jìn)行回歸映挂。在訓(xùn)練和預(yù)測(cè)輸入的范圍、分布不同的情況下盗尸,隨機(jī)森林會(huì)無法處理柑船。假設(shè)我們需要進(jìn)行時(shí)間序列數(shù)據(jù)的預(yù)測(cè),例如商品價(jià)格泼各,商品銷量鞍时,對(duì)于訓(xùn)練中不存在的時(shí)間段,隨機(jī)森林就難以預(yù)測(cè)了扣蜻。
這是為啥呢逆巍?主要是因?yàn)樗腔卩徲虻哪P停梢岳斫鉃樗饕前延?xùn)練數(shù)據(jù)根據(jù)特征取值來劃分成很多很多個(gè)塊莽使,這樣看它倒是很像基于KD樹的KNN是不是锐极,事實(shí)上隨機(jī)森林和KNN都可以被看作是所謂的“加權(quán)鄰居的方案”,本質(zhì)上是根據(jù)“鄰居”的取值來計(jì)算預(yù)測(cè)值芳肌,所以對(duì)于特征無法達(dá)到的數(shù)據(jù)就找不到鄰居沒法計(jì)算了灵再,這也是基于樹的算法在無限值域目標(biāo)變量中的先天短板,我們?cè)趹?yīng)用中一定要注意亿笤。
4 總結(jié)
隨機(jī)森林的良好效果體現(xiàn)了集成學(xué)習(xí)的強(qiáng)大翎迁,而且它的使用非常快捷方便净薛,因?yàn)樗鼪]太多參數(shù)需要調(diào)參汪榔,拿來就用效果還挺好,因此非常適合快速的開發(fā)罕拂,最后我們來總結(jié)一下隨機(jī)森林的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):
- 訓(xùn)練速度快,容易做成并行化方法(訓(xùn)練時(shí)樹與樹之間是相互獨(dú)立的)全陨,適用于大量數(shù)據(jù)爆班;
- 一般不會(huì)過擬合,泛化能力強(qiáng)辱姨;
- 可以多分類柿菩,可以回歸;
- 對(duì)缺失數(shù)據(jù)不敏感(訓(xùn)練數(shù)據(jù)隨機(jī)抽樣)雨涛。
- 能夠處理高維度的數(shù)據(jù)枢舶,并且不用做特征選擇(特征隨機(jī)抽樣)懦胞;
- 在訓(xùn)練完后,能夠輸出特征的重要性凉泄;
缺點(diǎn):
- 隨機(jī)森林在某些噪音較大的分類或回歸問題上會(huì)過擬合;
- 對(duì)于有不同取值的屬性的數(shù)據(jù)后众,取值劃分較多的屬性會(huì)對(duì)隨機(jī)森林產(chǎn)生更大的影響胀糜,所以隨機(jī)森林在這種數(shù)據(jù)上產(chǎn)出的屬性權(quán)值是不可信的。
主要參考
《機(jī)器學(xué)習(xí)》——周志華
維基百科-隨機(jī)森林