randomforest
SPSSAU-在線SPSS分析軟件
隨機(jī)森林模型 random forest ? SPSSAU
隨機(jī)森林模型
閱讀隨機(jī)森林模型前,建議首先閱讀決策樹(shù)模型手冊(cè)(點(diǎn)擊后跳到?jīng)Q策樹(shù)模型的幫助手冊(cè)頁(yè)面),因?yàn)殡S機(jī)森林模型實(shí)質(zhì)上是多個(gè)決策樹(shù)模型的綜合,決策樹(shù)模型只構(gòu)建一棵分類樹(shù),但是隨機(jī)森林模型構(gòu)建非常多棵決策樹(shù),相當(dāng)于在重復(fù)決策樹(shù)模型。隨機(jī)森林模型基于隨機(jī)樣本進(jìn)行構(gòu)建,并且在每個(gè)樹(shù)節(jié)點(diǎn)時(shí),考慮到分裂隨機(jī)特征性,因而一般意義上,隨機(jī)森林模型優(yōu)于決策樹(shù)模型(但并不一定,實(shí)際研究中應(yīng)該以數(shù)據(jù)為準(zhǔn))。
上述中提及隨機(jī)森林模型是多個(gè)決策樹(shù)模型的綜合,但是數(shù)據(jù)本身就只有一份,其是如何做到多個(gè)決策樹(shù)模型呢?此處涉及到隨機(jī)抽樣原理,比如有100個(gè)數(shù)據(jù),第1次隨機(jī)從其中隨機(jī)抽取100個(gè)數(shù)據(jù),就得到一份新數(shù)據(jù),即可使用該新數(shù)據(jù)進(jìn)行一次決策樹(shù)模型構(gòu)建,接著第2次重復(fù)隨機(jī)抽取100個(gè)數(shù)據(jù),又得到一份新數(shù)據(jù),再次使用新數(shù)據(jù)進(jìn)行一次決策樹(shù)模型構(gòu)建。不停地重復(fù)循環(huán)上述步驟,即得到多個(gè)決策樹(shù)模型;至于應(yīng)該是多少個(gè)決策樹(shù),這可由參數(shù)設(shè)置決定。在得到多個(gè)決策樹(shù)后,利用投票方式(比如多份數(shù)據(jù)均指向應(yīng)該為A類別,那么就為A類別)或者求解均值概率方式來(lái)統(tǒng)計(jì)最終的分類結(jié)果。
除此之外, 隨機(jī)森林的其它參數(shù)和指標(biāo)解讀,與決策樹(shù)基本一致,因?yàn)槠鋵?shí)質(zhì)性原理為多個(gè)決策樹(shù)模型的綜合而已。
隨機(jī)森林模型案例
Contents
1 背景 2
2 理論 2
3 操作 3
4 SPSSAU輸出結(jié)果 4
5文字分析 5
6 剖析 7
1 背景
隨機(jī)森林時(shí)依舊使用經(jīng)典的‘鳶尾花分類數(shù)據(jù)集’進(jìn)行案例演示,共為150個(gè)樣本,包括4個(gè)特征屬性(4個(gè)自變量X),分別是花萼長(zhǎng)度,花萼寬度,花瓣長(zhǎng)度,花瓣寬度,標(biāo)簽為鳶尾花卉類別,共包括3個(gè)類別分別是剛毛鳶尾花、變色鳶尾花和弗吉尼亞鳶尾花(下稱A、B、C三類)。
2 理論
隨機(jī)森林模型的原理上,其可見(jiàn)下圖。
比如本案例有150個(gè)樣本,使用80%即120個(gè)樣本用于訓(xùn)練模型,并且訓(xùn)練3個(gè)決策樹(shù)(此處3為決策樹(shù)數(shù)量參數(shù)值,可自行設(shè)置),該3個(gè)決策樹(shù)的數(shù)據(jù)是隨機(jī)抽樣得到,構(gòu)建得到3個(gè)決策樹(shù)后,使用投票策略進(jìn)行最終決策,該述整個(gè)模型即為隨機(jī)森林模型全貌。具體涉及相關(guān)參數(shù)信息,如下:
上述參數(shù)中,節(jié)點(diǎn)分裂標(biāo)準(zhǔn)、節(jié)點(diǎn)分列最小樣本、葉節(jié)點(diǎn)最小樣本量和樹(shù)最大深度共四個(gè)參數(shù)值,其與決策樹(shù)模型完全一致,具體可參考決策樹(shù)模型手冊(cè)(點(diǎn)擊后跳到?jīng)Q策樹(shù)模型的幫助手冊(cè)頁(yè)面)。
最大特征數(shù)目限制:隨機(jī)森林構(gòu)建多棵決策樹(shù),每棵決策樹(shù)不一定使用全部的特征(即自變量X),其可只使用部分特征,此參數(shù)值設(shè)置使用特征數(shù)量限制,通常情況下不需要對(duì)該參數(shù)設(shè)置,系統(tǒng)自動(dòng)判斷即可。
決策樹(shù)數(shù)量:默認(rèn)值為100,即構(gòu)建100模決策樹(shù),該參數(shù)值可自行設(shè)置,通常不需要設(shè)置,決策樹(shù)數(shù)量越多,模型構(gòu)建越穩(wěn)定,但模型運(yùn)行時(shí)間越長(zhǎng)。
是否有放回抽樣:隨機(jī)抽樣原理上,比如100個(gè)樣本中抽100個(gè),第1次抽到編號(hào)5,第2次是否還可能繼續(xù)抽到編號(hào)5,如果是放回抽樣則可能,如果是不放回抽樣則不可能再抽到編號(hào)5,正常情況下應(yīng)該使用放回抽樣,尤其是在樣本數(shù)據(jù)集較少時(shí)。
袋外數(shù)據(jù)測(cè)試:比如100個(gè)樣本隨機(jī)抽100個(gè),某些樣本重復(fù)被抽到,可能余下一些編號(hào)無(wú)論如何也沒(méi)有抽到,該類數(shù)據(jù)稱為‘袋外數(shù)據(jù)’,此部分?jǐn)?shù)據(jù)可在測(cè)試數(shù)據(jù)中進(jìn)行使用。該參數(shù)不被選中時(shí),即測(cè)試模型不使用袋外數(shù)據(jù)進(jìn)行測(cè)試。
隨機(jī)森林時(shí),通常可以對(duì)“節(jié)點(diǎn)分列最小樣本量”、“葉節(jié)點(diǎn)最小樣本量”、“樹(shù)最大深度”進(jìn)行參數(shù)設(shè)置,該3個(gè)參數(shù)值與決策樹(shù)模型完全一致,可參考決策樹(shù)模型手冊(cè)(點(diǎn)擊后跳到?jīng)Q策樹(shù)模型的幫助手冊(cè)頁(yè)面)。
3 操作
本例子操作如下:
訓(xùn)練集比例默認(rèn)選擇為:0.8即80%(150*0.8=120個(gè)樣本)進(jìn)行訓(xùn)練隨機(jī)森林模型,余下20%即30個(gè)樣本(測(cè)試數(shù)據(jù))用于模型的驗(yàn)證。需要注意的是,多數(shù)情況下,會(huì)首先對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,處理方式一般使用為正態(tài)標(biāo)準(zhǔn)化,此處理目的是讓數(shù)據(jù)保持一致性量綱。當(dāng)然也可使用其它的量綱方式,比如區(qū)間化,歸一化等。
接著對(duì)參數(shù)設(shè)置如下:
節(jié)點(diǎn)分裂標(biāo)準(zhǔn)默認(rèn)為gini系數(shù)即可,不需要設(shè)置,最大特征數(shù)目限制默認(rèn)自動(dòng)進(jìn)行即可,決策樹(shù)數(shù)量SPSSAU默認(rèn)為100,通常不需要設(shè)置,選中有放回采樣和袋外數(shù)據(jù)測(cè)試。如果要進(jìn)行參數(shù)設(shè)置,通過(guò)是對(duì)決策樹(shù)模型已有的參數(shù),包括“節(jié)點(diǎn)分列最小樣本量”、“葉節(jié)點(diǎn)最小樣本量”、“樹(shù)最大深度”共3個(gè)參數(shù)進(jìn)行設(shè)置,然后對(duì)比不同參數(shù)情況下模型的好壞,選擇最優(yōu)模型。本案例暫以默認(rèn)值進(jìn)行即可。
4 SPSSAU輸出結(jié)果
SPSSAU共輸出6項(xiàng)結(jié)果,依次為基本信息匯總,決策樹(shù)結(jié)構(gòu)圖,特征模型圖和特征權(quán)重圖,訓(xùn)練集或測(cè)試集模型評(píng)估結(jié)果,測(cè)試集結(jié)果混淆矩陣,模型匯總表和模型代碼,如下說(shuō)明:
上述表格中,基本信息匯總僅展示出因變量Y(標(biāo)簽項(xiàng))的分類分布情況,特征模型圖和特征權(quán)重圖可用于查看特征的相對(duì)重要性對(duì)比情況;模型評(píng)估結(jié)果(包括訓(xùn)練集或測(cè)試集),其用于對(duì)模型的擬合效果判斷,尤其是測(cè)試集的擬合效果,非常重要,因而SPSSAU單獨(dú)提供測(cè)試集結(jié)果混淆矩陣,用于進(jìn)一步查看測(cè)試集數(shù)據(jù)的效果情況;模型匯總表格將各類參數(shù)值進(jìn)行匯總,并且在最后附錄隨機(jī)森林模型構(gòu)建的核心代碼。
5文字分析
針對(duì)特征權(quán)重重要性對(duì)比上,X3和X4對(duì)于隨機(jī)森林模型構(gòu)建決策幫助較大,而X1的幫助相對(duì)最低(特別提示:此處與決策樹(shù)模型結(jié)論差別較大,這在特征項(xiàng)較少且數(shù)據(jù)量較少時(shí)出現(xiàn)較為正常)。
接下來(lái)針對(duì)最重要的模型擬合情況進(jìn)行說(shuō)明,如下表格:
上表格中分別針對(duì)訓(xùn)練集和測(cè)試集,提供四個(gè)評(píng)估指標(biāo),分別是精確率、召回率、f1-scrore、準(zhǔn)確率,以及平均指標(biāo)和樣本量指標(biāo)等,如下表格說(shuō)明:
具體上述具體指標(biāo)的解讀,可見(jiàn)決策樹(shù)模型幫助手冊(cè),通常使用F1-score值進(jìn)行評(píng)估即可,整體上,訓(xùn)練數(shù)據(jù)的F1-score值為0.95很高,而且測(cè)試數(shù)據(jù)時(shí)綜合f1-score值為0.94,也很高(需要提示的是:在決策樹(shù)模型時(shí)該值為0.906),意味著隨機(jī)森林帶來(lái)相對(duì)更優(yōu)的預(yù)測(cè)結(jié)果。
接著可查看測(cè)試數(shù)據(jù)的‘混淆矩陣’,即模型預(yù)測(cè)和事實(shí)情況的交叉集合,如下圖:
‘混淆矩陣’時(shí),右下三角對(duì)角線的值越大越好,其表示預(yù)測(cè)值和真實(shí)值完全一致。上圖中僅B類中2個(gè)樣本被判斷成C類,其余全部正確,意味著本次隨機(jī)森林模型在測(cè)試數(shù)據(jù)上表現(xiàn)良好。最后SPSSAU輸出模型參數(shù)信息值,如下表格:
上述參數(shù)信息僅為再次輸出匯總,并無(wú)其它目的,最后SPSSAU輸出使用python中slearn包構(gòu)建本次隨機(jī)森林模型的核心代碼如下:
model = RandomForestClassifier(criterion=gini, max_depth=40, min_samples_leaf=10, min_samples_split=2, n_estimators=100, bootstrap=True, oob_score=True, max_features=auto) ? ?
model.fit(x_train, y_train)
6 剖析
涉及以下幾個(gè)關(guān)鍵點(diǎn),分別如下:
隨機(jī)森林模型時(shí)是否需要標(biāo)準(zhǔn)化處理?
一般建議是進(jìn)行標(biāo)準(zhǔn)化處理,通常使用正態(tài)標(biāo)準(zhǔn)化處理方式即可。
訓(xùn)練集比例應(yīng)該選擇多少?
如果數(shù)據(jù)量很大,比如1萬(wàn),那么訓(xùn)練集比例可以較高比如0.9,如果數(shù)據(jù)量較小,此時(shí)訓(xùn)練集比例選擇較小預(yù)留出較多數(shù)據(jù)進(jìn)行測(cè)試即可。
保存預(yù)測(cè)值
保存預(yù)測(cè)值時(shí),SPSSAU會(huì)新生成一個(gè)標(biāo)題用于存儲(chǔ)模型預(yù)測(cè)的類別信息,其數(shù)字的意義與模型中標(biāo)簽項(xiàng)(因變量Y)的數(shù)字保持一致意義。
參數(shù)如何設(shè)置?
如果要進(jìn)行參數(shù)設(shè)置,建議可將節(jié)點(diǎn)分列最小樣本量往上調(diào),葉節(jié)點(diǎn)最小樣本量往上調(diào),樹(shù)最大深度可考慮設(shè)置相對(duì)較小值。設(shè)置后,分別將訓(xùn)練擬合效果,測(cè)試擬合效果進(jìn)行匯總和對(duì)比,調(diào)整參數(shù),找出相對(duì)最優(yōu)模型。另建議保障訓(xùn)練集和測(cè)試集數(shù)據(jù)的f1-score值在0.9以上。
SPSSAU進(jìn)行隨機(jī)森林模型構(gòu)建時(shí),自變量X(特征項(xiàng))中包括定類數(shù)據(jù)如何處理?
隨機(jī)森林模型時(shí)本身并不單獨(dú)針對(duì)定類數(shù)據(jù)處理,如果有定類數(shù)據(jù),建議對(duì)其啞變量處理后放入,關(guān)于啞變量可點(diǎn)擊查看。
http://spssau.com/front/spssau/helps/otherdocuments/dummy.html
SPSSAU中隨機(jī)模型合格的判斷標(biāo)準(zhǔn)是什么?
機(jī)器學(xué)習(xí)模型中,通常均為先使用訓(xùn)練數(shù)據(jù)訓(xùn)練模型,然后使用測(cè)試數(shù)據(jù)測(cè)試模型效果。通常判斷標(biāo)準(zhǔn)為訓(xùn)練模型具有良好的擬合效果,同時(shí)測(cè)試模型也有良好的擬合效果。機(jī)器學(xué)習(xí)模型中很容易出現(xiàn)‘過(guò)擬合’現(xiàn)象即假的好結(jié)果,因而一定需要重點(diǎn)關(guān)注測(cè)試數(shù)據(jù)的擬合效果。針對(duì)單一模型,可通過(guò)變換參數(shù)調(diào)優(yōu),與此同時(shí),可使用多種機(jī)器學(xué)習(xí)模型,比如使用決策樹(shù)、支持向量機(jī)SVM、神經(jīng)網(wǎng)絡(luò)等,綜合對(duì)比選擇最優(yōu)模型。
隨機(jī)森林更多參考資料?
更多關(guān)于隨機(jī)森林的資料,可通過(guò)sklearn官方手冊(cè)查看,點(diǎn)擊查看。
https://scikit-learn.org/stable/modules/ensemble.html#forests-of-randomized-trees
SPSSAU進(jìn)行隨機(jī)森林模型時(shí)提示數(shù)據(jù)質(zhì)量異常?
當(dāng)前隨機(jī)森林模型支持分類任務(wù),需要確保標(biāo)簽項(xiàng)(因變量Y)為定類數(shù)據(jù),如果為定量連續(xù)數(shù)據(jù),也或者樣本量較少(或者非會(huì)員僅分析前100個(gè)樣本)時(shí)可能出現(xiàn)無(wú)法計(jì)算因而提示數(shù)據(jù)質(zhì)量異常。