隨機(jī)森林

1.1概述

? ? 隨機(jī)森林非常具有代表性的Bagging集成算法导而,是一個(gè)包含多棵決策樹(shù)的評(píng)估器辕录,分類(lèi)數(shù)組成的森林就叫隨機(jī)森林分類(lèi)器玫鸟,回歸樹(shù)所集成的森林就叫隨機(jī)森林回歸器。

1.2?RandomForestClassifier

class sklearn.ensemble.RandomForestClassifier (n_estimators=’10’, criterion=’gini’, max_depth=None,min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=’auto’,max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False,n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=None)

控制基評(píng)估器的參數(shù)

1.3 n_estimators

? ? n_estimators是森林中樹(shù)木的數(shù)量移稳,即基評(píng)估器的數(shù)量蕴纳。這個(gè)參數(shù)對(duì)隨機(jī)森林模型的精確性影響是單調(diào)的,n_estimators越大模型的效果往往越好个粱,相應(yīng)的古毛,任何模型都有決策邊界,n_estimators到達(dá)一定的程度之后都许,隨機(jī)森林的精確性往往不在上升或是開(kāi)始波動(dòng)稻薇,并且,n_estimators越大需要的計(jì)算量和內(nèi)存就越大梭稚,訓(xùn)練的時(shí)間也越長(zhǎng)颖低,對(duì)于這個(gè)參數(shù),我們是渴望在訓(xùn)練難度和模型效果之間取得平衡弧烤。

????n_estimators的默認(rèn)值在現(xiàn)有版本的sklearn中是10忱屑,但是在即將更新的0.22版本中蹬敲,這個(gè)默認(rèn)值會(huì)被修正為100。這個(gè)修正顯示出了使用者的調(diào)參傾向:要更大的n_estimators莺戒。

? ? 1.4 random_state

? ? ? ? 隨機(jī)森林的本質(zhì)是一種裝袋集成算法伴嗡,裝袋集成算法是對(duì)基評(píng)估器的預(yù)測(cè)結(jié)果進(jìn)行或是平均或是用多表決原則來(lái)決定集成評(píng)估器的結(jié)果,在剛才的紅酒例子中从铲,我們建立了25棵樹(shù)瘪校,對(duì)任何一個(gè)樣本而言,平均或多數(shù)表決原則下名段,當(dāng)且僅當(dāng)有13棵以上的樹(shù)判斷錯(cuò)誤的時(shí)候阱扬,隨機(jī)森林才會(huì)判斷錯(cuò)誤。單獨(dú)一棵決策樹(shù)對(duì)紅酒數(shù)據(jù)集的分類(lèi)準(zhǔn)確率在0.85上下浮動(dòng)伸辟,假設(shè)一棵樹(shù)判斷錯(cuò)誤的可能性為0.2(ε)麻惶,那20棵樹(shù)以上都判斷錯(cuò)誤的可能性是:

i是判斷錯(cuò)誤的次數(shù),也是判錯(cuò)的樹(shù)的數(shù)量信夫,ε是一棵樹(shù)判斷錯(cuò)誤的概率窃蹋,(1-ε)是判斷正確的概率,共判對(duì) 25-i次静稻。采用組合警没,是因?yàn)?5棵樹(shù)中,有任意i棵都判斷錯(cuò)

? ??????那現(xiàn)在就有一個(gè)問(wèn)題了:我們說(shuō)袋裝法服從多數(shù)表決原則或?qū)诸?lèi)器結(jié)果求平均振湾,這即是說(shuō)杀迹,我們默認(rèn)森林中的每棵樹(shù)應(yīng)該都是不一樣的,并且會(huì)返回不同的結(jié)果恰梢,如果隨機(jī)森林中所有的數(shù)的判斷結(jié)果都一致(全部判錯(cuò)或是全部判對(duì))佛南,那隨機(jī)森林無(wú)論應(yīng)用何種集成原則來(lái)求結(jié)果,都無(wú)法比單棵決策樹(shù)取得更好的效果才對(duì)嵌言,但是使用一樣的類(lèi)DecisionTreeClassifier,一樣的參數(shù)及穗,一樣的訓(xùn)練集和測(cè)試集摧茴,為什么隨機(jī)森林里的眾多樹(shù)會(huì)有不同的判斷結(jié)果?sklearn中的分類(lèi)樹(shù)DecisionTreeClassifier自帶隨機(jī)性埂陆,所以隨機(jī)森林中的樹(shù)天生就都是不一樣的苛白。我們?cè)谥v解分類(lèi)樹(shù)時(shí)曾提到,決策樹(shù)從最重要的特征中隨機(jī)選擇出一個(gè)特征來(lái)進(jìn)行分枝焚虱,因此每次生成的決策樹(shù)都不一樣购裙,這個(gè)功能由參數(shù)random_state控制。隨機(jī)森林中其實(shí)也有random_state鹃栽,用法和分類(lèi)樹(shù)中相似躏率,只不過(guò)在分類(lèi)樹(shù)中,一個(gè)random_state只控制生成一棵樹(shù),而隨機(jī)森林中的random_state控制的是生成森林的模式薇芝,而非讓一個(gè)森林中只有一棵樹(shù)蓬抄。

? ? 1.5 bootstrap & oob_score

? ? ? ? 要讓基分類(lèi)器盡量都不一樣,一種很容易理解的方法是使用不同的訓(xùn)練集進(jìn)行訓(xùn)練夯到,而袋裝法正是通過(guò)又放回的隨機(jī)抽樣技術(shù)來(lái)形成不同的訓(xùn)練數(shù)據(jù)嚷缭,bootstrap就是控制抽樣技術(shù)的參數(shù)。

? ? ? ? 在一個(gè)含有n個(gè)樣本的原始訓(xùn)練集中耍贾,我們進(jìn)行隨機(jī)抽樣阅爽,每次采用一個(gè)樣本,并在抽取下一個(gè)樣本之前將該樣本放回原始數(shù)據(jù)集中荐开,也就是下次采樣的時(shí)候這個(gè)樣本依然可能會(huì)被采集到优床,這樣采集n次,最終得到一個(gè)和原始訓(xùn)練集一樣大的n個(gè)樣本組成的自助集誓焦,由于是隨機(jī)采樣胆敞,這樣沒(méi)次的自助集和原始數(shù)據(jù)集不同,和其他的采樣集也是不同的杂伟。我們就可以自由創(chuàng)造取之不盡用之不竭移层,并且互不相同的自助集,用這些自助集來(lái)訓(xùn)練我們的基分類(lèi)器赫粥,我們的基分類(lèi)器自然也就各不相同了观话。bootstrap參數(shù)默認(rèn)True,代表采用這種有放回的隨機(jī)抽樣技術(shù)越平。通常频蛔,這個(gè)參數(shù)不會(huì)被我們?cè)O(shè)置為False。

? ??????然而有放回抽樣也會(huì)有自己的問(wèn)題秦叛。由于是有放回晦溪,一些樣本可能在同一個(gè)自助集中出現(xiàn)多次,而其他一些卻可能

被忽略挣跋,一般來(lái)說(shuō)三圆,自助集大約平均會(huì)包含63%的原始數(shù)據(jù)。因?yàn)槊恳粋€(gè)樣本被抽到某個(gè)自助集中的概率為

? ??????當(dāng)n足夠大時(shí)避咆,這個(gè)概率收斂于1-(1/e)舟肉,約等于0.632。因此查库,會(huì)有約37%的訓(xùn)練數(shù)據(jù)被浪費(fèi)掉路媚,沒(méi)有參與建模,這些數(shù)據(jù)被稱(chēng)為袋外數(shù)據(jù)(out of bag data樊销,簡(jiǎn)寫(xiě)為oob)整慎。除了我們最開(kāi)始就劃分好的測(cè)試集之外脏款,這些數(shù)據(jù)也可以被用來(lái)作為集成算法的測(cè)試集。也就是說(shuō)院领,在使用隨機(jī)森林時(shí)弛矛,我們可以不劃分測(cè)試集和訓(xùn)練集,只需要用袋外數(shù)據(jù)來(lái)測(cè)試我們的模型即可比然。當(dāng)然丈氓,這也不是絕對(duì)的,當(dāng)n和n_estimators都不夠大的時(shí)候强法,很可能就沒(méi)有數(shù)據(jù)掉落在袋外万俗,自然也就無(wú)法使用oob數(shù)據(jù)來(lái)測(cè)試模型了。如果希望用袋外數(shù)據(jù)來(lái)測(cè)試饮怯,則需要在實(shí)例化時(shí)就將oob_score這個(gè)參數(shù)調(diào)整為T(mén)rue闰歪,訓(xùn)練完畢之后,我們可以用隨機(jī)森林的另一個(gè)重要屬性:oob_score_來(lái)查看我們的在袋外數(shù)據(jù)上測(cè)試的結(jié)果

? ??????隨機(jī)森林的接口與決策樹(shù)完全一致蓖墅,因此依然有四個(gè)常用接口:apply, fit, predict和score库倘。除此之外,還需要注意隨機(jī)森林的predict_proba接口论矾,這個(gè)接口返回每個(gè)測(cè)試樣本對(duì)應(yīng)的被分到每一類(lèi)標(biāo)簽的概率教翩,標(biāo)簽有幾個(gè)分類(lèi)就返回幾個(gè)概率。如果是二分類(lèi)問(wèn)題贪壳,則predict_proba返回的數(shù)值大于0.5的饱亿,被分為1,小于0.5的闰靴,被分為0彪笼。傳統(tǒng)的隨機(jī)森林是利用袋裝法中的規(guī)則,平均或少數(shù)服從多數(shù)來(lái)決定集成的結(jié)果蚂且,而sklearn中的隨機(jī)森林是平均每個(gè)樣本對(duì)應(yīng)的predict_proba返回的概率配猫,得到一個(gè)平均概率,從而決定測(cè)試樣本的分類(lèi)膘掰。

? ? 1.6?Bonus:Bagging的另一個(gè)必要條件

? ??????在使用袋裝法時(shí)要求基評(píng)估器要盡量獨(dú)立章姓。其實(shí),袋裝法還有另一個(gè)必要條件:基分類(lèi)器的判斷準(zhǔn)確率至少要超過(guò)隨機(jī)分類(lèi)器识埋,即時(shí)說(shuō),基分類(lèi)器的判斷準(zhǔn)確率至少要超過(guò)50%零渐。之前我們已經(jīng)展示過(guò)隨機(jī)森林的準(zhǔn)確率公式窒舟,基于這個(gè)公式,我們畫(huà)出了基分類(lèi)器的誤差率ε和隨機(jī)森林的誤差率之間的圖像诵盼。大家可以自己運(yùn)行一下這段代碼惠豺,看看圖像呈什么樣的分布银还。

????????可以從圖像上看出,當(dāng)基分類(lèi)器的誤差率小于0.5洁墙,即準(zhǔn)確率大于0.5時(shí)蛹疯,集成的效果是比基分類(lèi)器要好的。相反热监,當(dāng)基分類(lèi)器的誤差率大于0.5捺弦,袋裝的集成算法就失效了。所以在使用隨機(jī)森林之前孝扛,一定要檢查列吼,用來(lái)組成隨機(jī)森林的分類(lèi)樹(shù)們是否都有至少50%的預(yù)測(cè)正確率。

? ? 1.7?RandomForestRegressor

class sklearn.ensemble.RandomForestRegressor (n_estimators=’warn’, criterion=’mse’, max_depth=None,min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=’auto’,max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False,n_jobs=None, random_state=None, verbose=0, warm_start=False)

所有的參數(shù)苦始,屬性與接口寞钥,全部和隨機(jī)森林分類(lèi)器一致。僅有的不同就是回歸樹(shù)與分類(lèi)樹(shù)的不同陌选,不純度的指標(biāo)理郑,參數(shù)Criterion不一致。

? ? 1.8?重要參數(shù)咨油,屬性與接口

? ??????criterion 回歸樹(shù)衡量分枝質(zhì)量的指標(biāo)您炉,支持的標(biāo)準(zhǔn)有三種:

????????1)輸入"mse"使用均方誤差mean squared error(MSE),父節(jié)點(diǎn)和葉子節(jié)點(diǎn)之間的均方誤差的差額將被用來(lái)作為特征選擇的標(biāo)準(zhǔn)臼勉,這種方法通過(guò)使用葉子節(jié)點(diǎn)的均值來(lái)最小化L2損失

????????2)輸入“friedman_mse”使用費(fèi)爾德曼均方誤差邻吭,這種指標(biāo)使用弗里德曼針對(duì)潛在分枝中的問(wèn)題改進(jìn)后的均方誤差

????????3)輸入"mae"使用絕對(duì)平均誤差MAE(mean absolute error),這種指標(biāo)使用葉節(jié)點(diǎn)的中值來(lái)最小化L1損失

N是樣本數(shù)量宴霸,i是每一個(gè)數(shù)據(jù)樣本囱晴,fi是模型回歸出的數(shù)值,yi是樣本點(diǎn)i實(shí)際的數(shù)值標(biāo)簽

所以MSE的本質(zhì)瓢谢,其實(shí)是樣本真實(shí)數(shù)據(jù)與回歸結(jié)果的差異畸写。在回歸樹(shù)中,MSE不只是我們的分枝質(zhì)量衡量指標(biāo)氓扛,也是我們最常用的衡量回歸樹(shù)回歸質(zhì)量的指標(biāo)枯芬,當(dāng)我們?cè)谑褂媒徊骝?yàn)證,或者其他方式獲取回歸樹(shù)的結(jié)果時(shí)采郎,我們往往選擇均方誤差作為我們的評(píng)估(在分類(lèi)樹(shù)中這個(gè)指標(biāo)是score代表的預(yù)測(cè)準(zhǔn)確率)千所。在回歸中,我們追求的是蒜埋,MSE越小越好淫痰。然而,回歸樹(shù)的接口score返回的是R平方整份,并不是MSE待错。R平方被定義如下:

u是殘差平方和(MSE * N)籽孙,v是總平方和,N是樣本數(shù)量火俄,i是每一個(gè)數(shù)據(jù)樣本犯建,fi是模型回歸出的數(shù)值,yi 是樣本點(diǎn)i實(shí)際的數(shù)值標(biāo)簽瓜客。y帽是真實(shí)數(shù)值標(biāo)簽的平均數(shù)

R平方可以為正為負(fù)(如果模型的殘差平方和遠(yuǎn)遠(yuǎn)大于模型的總平方和适瓦,模型非常糟糕,R平方就會(huì)為負(fù))忆家,而均方誤差永遠(yuǎn)為正犹菇。值得一提的是,雖然均方誤差永遠(yuǎn)為正芽卿,但是sklearn當(dāng)中使用均方誤差作為評(píng)判標(biāo)準(zhǔn)時(shí)揭芍,卻是計(jì)算”負(fù)均方誤差“ (neg_mean_ squared_error)。這是因?yàn)閟klearn在計(jì)算模型評(píng)估指標(biāo)的時(shí)候卸例,會(huì)考慮指標(biāo)本身的性質(zhì)称杨,均方誤差本身是一種誤差,所以被sklearn劃分為模型的一種損失(loss)筷转,因此在sklearn當(dāng)中姑原,都以負(fù)數(shù)表示。真正的均方誤差MSE的數(shù)值呜舒,其實(shí)就是neg_mean_ squared_error去掉負(fù)號(hào)的數(shù)字锭汛。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市袭蝗,隨后出現(xiàn)的幾起案子唤殴,更是在濱河造成了極大的恐慌,老刑警劉巖到腥,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朵逝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡乡范,警方通過(guò)查閱死者的電腦和手機(jī)配名,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)晋辆,“玉大人渠脉,你說(shuō)我怎么就攤上這事∑考眩” “怎么了连舍?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)涩哟。 經(jīng)常有香客問(wèn)我索赏,道長(zhǎng),這世上最難降的妖魔是什么贴彼? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任潜腻,我火速辦了婚禮,結(jié)果婚禮上器仗,老公的妹妹穿的比我還像新娘融涣。我一直安慰自己,他們只是感情好精钮,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布威鹿。 她就那樣靜靜地躺著,像睡著了一般轨香。 火紅的嫁衣襯著肌膚如雪忽你。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,842評(píng)論 1 290
  • 那天臂容,我揣著相機(jī)與錄音科雳,去河邊找鬼。 笑死脓杉,一個(gè)胖子當(dāng)著我的面吹牛糟秘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播球散,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼尿赚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蕉堰?” 一聲冷哼從身側(cè)響起凌净,我...
    開(kāi)封第一講書(shū)人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嘁灯,沒(méi)想到半個(gè)月后泻蚊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丑婿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年性雄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片羹奉。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秒旋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诀拭,到底是詐尸還是另有隱情迁筛,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布耕挨,位于F島的核電站细卧,受9級(jí)特大地震影響尉桩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贪庙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一蜘犁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧止邮,春花似錦这橙、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至撩匕,卻和暖如春鹰晨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背滑沧。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工并村, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人滓技。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓哩牍,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親令漂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子膝昆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

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

  • 1、隨機(jī)森林步驟1)給定包含N個(gè)樣本的數(shù)據(jù)集叠必,經(jīng)過(guò)m次有放回的隨機(jī)抽樣操作荚孵,得到T個(gè)含m個(gè)訓(xùn)練樣本的采樣集2)對(duì)每...
    阿童89閱讀 4,893評(píng)論 0 0
  • https://blog.csdn.net/qq_16633405/article/details/6120050...
    無(wú)味之味閱讀 33,846評(píng)論 0 13
  • 泰戈?duì)栐模?Maiden, your simplicity, like the blueness of the ...
    語(yǔ)熙閱讀 641評(píng)論 0 3
  • 沒(méi)有經(jīng)歷過(guò)失敗的人,必將是平庸之輩纬朝。人生可以平凡收叶,但是不應(yīng)該平庸,盡管擺脫平庸不一定通向成功共苛,但是起碼可以讓平凡更...
    笨笨的拾光閱讀 394評(píng)論 0 1
  • 文/拜星月慢蝶戀花 鶯初解語(yǔ)判没, 亂花飛絮, 最是一年春好處隅茎。 風(fēng)裁細(xì)葉澄峰, 碧玉綠絲, 滿(mǎn)城春色宮墻柳辟犀。 水村山郭俏竞,...
    拜星月慢蝶戀花閱讀 562評(píng)論 2 14