隨機(jī)森林--你想到的抱慌,都在這了

1.什么是隨機(jī)森林

1.1 Bagging思想

Bagging是bootstrap aggregating歹鱼。思想就是從總體樣本當(dāng)中隨機(jī)取一部分樣本進(jìn)行訓(xùn)練,通過多次這樣的結(jié)果卜高,進(jìn)行投票獲取平均值作為結(jié)果輸出弥姻,這就極大可能的避免了不好的樣本數(shù)據(jù),從而提高準(zhǔn)確度掺涛。因為有些是不好的樣本庭敦,相當(dāng)于噪聲,模型學(xué)入噪聲后會使準(zhǔn)確度不高薪缆。

舉個例子

假設(shè)有1000個樣本秧廉,如果按照以前的思維,是直接把這1000個樣本拿來訓(xùn)練拣帽,但現(xiàn)在不一樣疼电,先抽取800個樣本來進(jìn)行訓(xùn)練,假如噪聲點(diǎn)是這800個樣本以外的樣本點(diǎn)减拭,就很有效的避開了蔽豺。重復(fù)以上操作,提高模型輸出的平均值拧粪。

1.2 隨機(jī)森林

Random Forest(隨機(jī)森林)是一種基于樹模型的Bagging的優(yōu)化版本修陡,一棵樹的生成肯定還是不如多棵樹沧侥,因此就有了隨機(jī)森林,解決決策樹泛化能力弱的特點(diǎn)魄鸦。(可以理解成三個臭皮匠頂過諸葛亮)

而同一批數(shù)據(jù)宴杀,用同樣的算法只能產(chǎn)生一棵樹,這時Bagging策略可以幫助我們產(chǎn)生不同的數(shù)據(jù)集拾因。Bagging策略來源于bootstrap aggregation:從樣本集(假設(shè)樣本集N個數(shù)據(jù)點(diǎn))中重采樣選出Nb個樣本(有放回的采樣旺罢,樣本數(shù)據(jù)點(diǎn)個數(shù)仍然不變?yōu)镹),在所有樣本上盾致,對這n個樣本建立分類器(ID3\C4.5\CART\SVM\LOGISTIC)主经,重復(fù)以上兩步m次,獲得m個分類器庭惜,最后根據(jù)這m個分類器的投票結(jié)果罩驻,決定數(shù)據(jù)屬于哪一類。

每棵樹的按照如下規(guī)則生成:

  1. 如果訓(xùn)練集大小為N护赊,對于每棵樹而言惠遏,隨機(jī)且有放回地從訓(xùn)練集中的抽取N個訓(xùn)練樣本,作為該樹的訓(xùn)練集骏啰;
  2. 如果每個樣本的特征維度為M节吮,指定一個常數(shù)m<<M,隨機(jī)地從M個特征中選取m個特征子集判耕,每次樹進(jìn)行分裂時透绩,從這m個特征中選擇最優(yōu)的;
  3. 每棵樹都盡最大程度的生長壁熄,并且沒有剪枝過程帚豪。

一開始我們提到的隨機(jī)森林中的“隨機(jī)”就是指的這里的兩個隨機(jī)性。兩個隨機(jī)性的引入對隨機(jī)森林的分類性能至關(guān)重要草丧。由于它們的引入狸臣,使得隨機(jī)森林不容易陷入過擬合,并且具有很好得抗噪能力(比如:對缺省值不敏感)昌执。

總的來說就是隨機(jī)選擇樣本數(shù)烛亦,隨機(jī)選取特征,隨機(jī)選擇分類器懂拾,建立多顆這樣的決策樹煤禽,然后通過這幾課決策樹來投票,決定數(shù)據(jù)屬于哪一類(投票機(jī)制有一票否決制岖赋、少數(shù)服從多數(shù)呜师、加權(quán)多數(shù))

2. 隨機(jī)森林分類效果的影響因素

  • 森林中任意兩棵樹的相關(guān)性:相關(guān)性越大,錯誤率越大贾节;
  • 森林中每棵樹的分類能力:每棵樹的分類能力越強(qiáng)汁汗,整個森林的錯誤率越低衷畦。

減小特征選擇個數(shù)m,樹的相關(guān)性和分類能力也會相應(yīng)的降低知牌;增大m祈争,兩者也會隨之增大。所以關(guān)鍵問題是如何選擇最優(yōu)的m(或者是范圍)角寸,這也是隨機(jī)森林唯一的一個參數(shù)菩混。

3. 隨機(jī)森林有什么優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

  • 在當(dāng)前的很多數(shù)據(jù)集上,相對其他算法有著很大的優(yōu)勢扁藕,表現(xiàn)良好沮峡。
  • 它能夠處理很高維度(feature很多)的數(shù)據(jù),并且不用做特征選擇(因為特征子集是隨機(jī)選擇的)亿柑。
  • 在訓(xùn)練完后邢疙,它能夠給出哪些feature比較重要。
  • 訓(xùn)練速度快望薄,容易做成并行化方法(訓(xùn)練時樹與樹之間是相互獨(dú)立的)疟游。
  • 在訓(xùn)練過程中,能夠檢測到feature間的互相影響痕支。
  • 對于不平衡的數(shù)據(jù)集來說颁虐,它可以平衡誤差。
  • 如果有很大一部分的特征遺失卧须,仍可以維持準(zhǔn)確度另绩。

缺點(diǎn):

  • 隨機(jī)森林已經(jīng)被證明在某些噪音較大的分類或回歸問題上會過擬合。
  • 對于有不同取值的屬性的數(shù)據(jù)花嘶,取值劃分較多的屬性會對隨機(jī)森林產(chǎn)生更大的影響板熊,所以隨機(jī)森林在這種數(shù)據(jù)上產(chǎn)出的屬性權(quán)值是不可信的。

4. 隨機(jī)森林如何處理缺失值察绷?

根據(jù)隨機(jī)森林創(chuàng)建和訓(xùn)練的特點(diǎn),隨機(jī)森林對缺失值的處理還是比較特殊的津辩。

  • 首先拆撼,給缺失值預(yù)設(shè)一些估計值,比如數(shù)值型特征喘沿,選擇其余數(shù)據(jù)的中位數(shù)或眾數(shù)作為當(dāng)前的估計值
  • 然后闸度,根據(jù)估計的數(shù)值,建立隨機(jī)森林蚜印,把所有的數(shù)據(jù)放進(jìn)隨機(jī)森林里面跑一遍莺禁。記錄每一組數(shù)據(jù)在決策樹中一步一步分類的路徑.
  • 判斷哪組數(shù)據(jù)和缺失數(shù)據(jù)路徑最相似,引入一個相似度矩陣窄赋,來記錄數(shù)據(jù)之間的相似度哟冬,比如有N組數(shù)據(jù)楼熄,相似度矩陣大小就是N*N
  • 如果缺失值是類別變量,通過權(quán)重投票得到新估計值浩峡,如果是數(shù)值型變量可岂,通過加權(quán)平均得到新的估計值,如此迭代翰灾,直到得到穩(wěn)定的估計值缕粹。

其實(shí),該缺失值填補(bǔ)過程類似于推薦系統(tǒng)中采用協(xié)同過濾進(jìn)行評分預(yù)測纸淮,先計算缺失特征與其他特征的相似度平斩,再加權(quán)得到缺失值的估計,而隨機(jī)森林中計算相似度的方法(數(shù)據(jù)在決策樹中一步一步分類的路徑)乃其獨(dú)特之處咽块。

5. 什么是OOB绘面?隨機(jī)森林中OOB是如何計算的,它有什么優(yōu)缺點(diǎn)糜芳?

OOB

上面我們提到飒货,構(gòu)建隨機(jī)森林的關(guān)鍵問題就是如何選擇最優(yōu)的m,要解決這個問題主要依據(jù)計算袋外錯誤率oob error(out-of-bag error)峭竣。

bagging方法中Bootstrap每次約有1/3的樣本不會出現(xiàn)在Bootstrap所采集的樣本集合中塘辅,當(dāng)然也就沒有參加決策樹的建立,把這1/3的數(shù)據(jù)稱為袋外數(shù)據(jù)oob(out of bag),它可以用于取代測試集誤差估計方法皆撩。

袋外數(shù)據(jù)(oob)誤差的計算方法如下:

  • 對于已經(jīng)生成的隨機(jī)森林,用袋外數(shù)據(jù)測試其性能,假設(shè)袋外數(shù)據(jù)總數(shù)為O,用這O個袋外數(shù)據(jù)作為輸入,帶進(jìn)之前已經(jīng)生成的隨機(jī)森林分類器,分類器會給出O個數(shù)據(jù)相應(yīng)的分類
  • 因為這O條數(shù)據(jù)的類型是已知的,則用正確的分類與隨機(jī)森林分類器的結(jié)果進(jìn)行比較,統(tǒng)計隨機(jī)森林分類器分類錯誤的數(shù)目,設(shè)為X,則袋外數(shù)據(jù)誤差大小=X/O

優(yōu)缺點(diǎn)

這已經(jīng)經(jīng)過證明是無偏估計的,所以在隨機(jī)森林算法中不需要再進(jìn)行交叉驗證或者單獨(dú)的測試集來獲取測試集誤差的無偏估計扣墩。

6. 隨機(jī)森林的過擬合問題

  1. 你已經(jīng)建了一個有10000棵樹的隨機(jī)森林模型。在得到0.00的訓(xùn)練誤差后扛吞,你非常高興呻惕。但是,驗證錯誤是34.23滥比。到底是怎么回事亚脆?你還沒有訓(xùn)練好你的模型嗎?

    答:該模型過度擬合盲泛,因此濒持,為了避免這些情況,我們要用交叉驗證來調(diào)整樹的數(shù)量寺滚。

7. 代碼實(shí)現(xiàn)

GitHub:https://github.com/NLP-LOVE/ML-NLP/blob/master/Machine%20Learning/3.1%20Random%20Forest/RandomForestRegression.ipynb

機(jī)器學(xué)習(xí)通俗易懂系列文章

3.png

作者:@mantchs

GitHub:https://github.com/NLP-LOVE/ML-NLP

歡迎大家加入討論柑营!共同完善此項目!qq群號:【541954936】

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末村视,一起剝皮案震驚了整個濱河市官套,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖奶赔,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惋嚎,死亡現(xiàn)場離奇詭異,居然都是意外死亡纺阔,警方通過查閱死者的電腦和手機(jī)瘸彤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笛钝,“玉大人质况,你說我怎么就攤上這事〔C遥” “怎么了结榄?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長囤捻。 經(jīng)常有香客問我臼朗,道長,這世上最難降的妖魔是什么蝎土? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任视哑,我火速辦了婚禮,結(jié)果婚禮上誊涯,老公的妹妹穿的比我還像新娘挡毅。我一直安慰自己,他們只是感情好暴构,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布跪呈。 她就那樣靜靜地躺著,像睡著了一般取逾。 火紅的嫁衣襯著肌膚如雪耗绿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天砾隅,我揣著相機(jī)與錄音误阻,去河邊找鬼。 笑死晴埂,一個胖子當(dāng)著我的面吹牛究反,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播邑时,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼特姐!你這毒婦竟也來了晶丘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎浅浮,沒想到半個月后沫浆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滚秩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年专执,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片郁油。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡本股,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桐腌,到底是詐尸還是另有隱情拄显,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布案站,位于F島的核電站躬审,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蟆盐。R本人自食惡果不足惜承边,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望石挂。 院中可真熱鬧博助,春花似錦、人聲如沸誊稚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽里伯。三九已至城瞎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疾瓮,已是汗流浹背脖镀。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留狼电,地道東北人蜒灰。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像肩碟,于是被迫代替她去往敵國和親强窖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容