決策樹模型
SPSSAU-在線SPSS分析軟件
決策樹模型 Decision Tree SPSSAU
決策樹模型
決策樹(Decision Tree)常用于研究類別歸屬和預(yù)測(cè)關(guān)系的模型,比如是否抽煙、是否喝酒、年齡、體重等4項(xiàng)個(gè)人特征可能會(huì)影響到‘是否患癌癥’,上述4項(xiàng)個(gè)人特征稱作‘特征’,也即自變量(影響因素X),‘是否患癌癥’稱為‘標(biāo)簽’,也即因變量(被影響項(xiàng)Y)。決策樹模型時(shí),其可首先對(duì)年齡進(jìn)行劃分,比如以70歲為界,年齡大于70歲時(shí),可能更容易歸類為‘患癌癥’,接著對(duì)體重進(jìn)行劃分,比如大于50公斤為界,大于50公斤時(shí)更可能劃分為‘患癌癥’,依次循環(huán)下去,特征之間的邏輯組合后(比如年齡大于70歲,體重大于50公斤),會(huì)對(duì)應(yīng)到是否患癌癥這一標(biāo)簽上。
決策樹是一種預(yù)測(cè)模型,為讓其有著良好的預(yù)測(cè)能力,因此通常需要將數(shù)據(jù)分為兩組,分別是訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)。訓(xùn)練數(shù)據(jù)用于建立模型使用,即建立特征組合與標(biāo)簽之間的對(duì)應(yīng)關(guān)系,得到這樣的對(duì)應(yīng)關(guān)系后(模型后),然后使用測(cè)試數(shù)據(jù)用來驗(yàn)證當(dāng)前模型的優(yōu)劣。通常情況下,訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)的比例通常為9:1,8:2,7:3,6:4或者5:5(比如9:1時(shí)指所有數(shù)據(jù)中90%作為訓(xùn)練模型使用,余下10%作為測(cè)試模型好壞使用)。具體比例情況似研究數(shù)據(jù)量而定無固定標(biāo)準(zhǔn),如果研究數(shù)據(jù)較少,比如僅幾百條數(shù)據(jù),可考慮將70%或者60%,甚至50%的數(shù)據(jù)用于訓(xùn)練,余下數(shù)據(jù)用于測(cè)試。上述中包括模型構(gòu)建和模型預(yù)測(cè)兩項(xiàng),如果訓(xùn)練數(shù)據(jù)得到的模型優(yōu)秀,此時(shí)可考慮將其進(jìn)行保存并且部署出去使用(此為計(jì)算機(jī)工程中應(yīng)用,SPSSAU暫不提供);除此之外,當(dāng)決策樹模型構(gòu)建完成后可進(jìn)行預(yù)測(cè),比如新來一個(gè)病人,他是否會(huì)患癌癥及患癌癥的可能性有多高。
決策樹模型可用于特征質(zhì)量判斷,比如上述是否抽煙、是否喝酒、年齡、體重等4項(xiàng),該四項(xiàng)對(duì)于‘是否患癌癥’的預(yù)測(cè)作用重要性大小可以進(jìn)行排名用于篩選出最有用的特征項(xiàng)。
決策樹模型的構(gòu)建時(shí),需要對(duì)參數(shù)進(jìn)行設(shè)置,其目的在于構(gòu)建良好的模型(良好模型的標(biāo)準(zhǔn)通常為:訓(xùn)練數(shù)據(jù)得到的模型評(píng)估結(jié)果良好,并且測(cè)試數(shù)據(jù)時(shí)評(píng)估結(jié)果良好)。需要特別注意一點(diǎn)是:訓(xùn)練數(shù)據(jù)模型評(píng)估結(jié)果可能很好(甚至準(zhǔn)確率等各項(xiàng)指標(biāo)為100%),但是在測(cè)試數(shù)據(jù)上評(píng)估結(jié)果確很糟糕,此種情況稱為‘過擬合’。因而在實(shí)際研究數(shù)據(jù)中,需要特別注意此種情況。模型的構(gòu)建時(shí)通常情況下參數(shù)設(shè)置越復(fù)雜,其會(huì)帶來訓(xùn)練數(shù)據(jù)的模型評(píng)估結(jié)果越好,但測(cè)試效果卻很糟糕,因而在決策樹構(gòu)建時(shí),需要特別注意參數(shù)的相關(guān)設(shè)置,接下來會(huì)使用案例數(shù)據(jù)進(jìn)行相關(guān)說明。
決策樹模型案例
Contents
1 背景 2
2 理論 2
3 操作 3
4 SPSSAU輸出結(jié)果 4
5文字分析 4
6 剖析 7
1 背景
使用經(jīng)典的‘鳶尾花分類數(shù)據(jù)集’進(jìn)行案例演示,其數(shù)據(jù)集為150個(gè)樣本,包括4個(gè)特征屬性(4個(gè)自變量X),分別是花萼長(zhǎng)度,花萼寬度,花瓣長(zhǎng)度,花瓣寬度,標(biāo)簽為鳶尾花卉類別,共包括3個(gè)類別分別是剛毛鳶尾花、變色鳶尾花和弗吉尼亞鳶尾花(下稱A、B、C三類)。
2 理論
決策樹模型的原理上,其第1步是找出最優(yōu)的特征和其分割點(diǎn),比如影響是否患癌癥的特征最可能是年齡,并且分割點(diǎn)可能是70歲,小于70歲可能歸為‘不患癌癥’,70歲及以上可能歸為‘患癌癥’。此第1步時(shí)會(huì)涉及到2個(gè)專業(yè)名詞,分別是‘節(jié)點(diǎn)分裂標(biāo)準(zhǔn)’和‘節(jié)點(diǎn)劃分方式’。第2步是找出次優(yōu)的特征和其分割點(diǎn),繼續(xù)進(jìn)行拆分。一直循環(huán)下去。
關(guān)于決策樹模型時(shí),通常涉及到以下參數(shù)值,如下:
節(jié)點(diǎn)分裂標(biāo)準(zhǔn):其指模型找到特征優(yōu)先順序的計(jì)算方式,共有兩種,分別是gini系數(shù)和entropy系數(shù),二者僅為計(jì)算標(biāo)準(zhǔn)的區(qū)別功能完全一致,一般情況下使用gini系數(shù)。
特別提示:
節(jié)點(diǎn)分裂標(biāo)準(zhǔn)的數(shù)學(xué)原理為:如果按某特征及其分割點(diǎn)后(比如年齡這個(gè)特征并且70歲這個(gè)分割點(diǎn))后,分成兩組時(shí),一組為患癌癥,一組不患癌癥,如果‘分的特別開’,特別純,混雜性特別?。ū热缫唤M為患癌癥確實(shí)全部都患問卷,一組不患癌癥確實(shí)都不患癌癥),那么這個(gè)特征就是優(yōu)秀的,節(jié)點(diǎn)分裂標(biāo)準(zhǔn)正是用于衡量特征的優(yōu)劣。
節(jié)點(diǎn)劃分方式:包括兩種,一是best法即完全按照節(jié)點(diǎn)分裂標(biāo)準(zhǔn)進(jìn)行計(jì)算,另一種是random隨機(jī)法,隨機(jī)法會(huì)減少過擬合現(xiàn)象,但通常默認(rèn)使用best法。
節(jié)點(diǎn)分列最小樣本:比如大于等于70歲劃分為一組,如果發(fā)現(xiàn)70歲及以上時(shí)患癌癥的樣本量特別小,說明不能繼續(xù)劃分分組,一般情況下該值應(yīng)該越大越好,過小的話容易帶來過擬合現(xiàn)象。
葉節(jié)點(diǎn)最小樣本量:比如大于等于70歲劃分為一組,那么這個(gè)組別時(shí)最小的樣本量需要多少,SPSSAU默認(rèn)是2,一般情況下:該值越大越可能減少過擬合現(xiàn)象,該值越小越容易導(dǎo)致過擬合。
樹最大深度:比如上述先按年齡劃分,接著小于70歲時(shí),再按次優(yōu)特征比如體重進(jìn)行劃分,接著再按次次優(yōu)特征比如是否吸煙進(jìn)行劃分,此處則出現(xiàn)劃分的層次(即權(quán)最大深度),該值可以自行指定,當(dāng)層次越多(樹最大深度)時(shí),此時(shí)模型越為復(fù)雜,擬合效果通常更好,但也可能帶來過擬合現(xiàn)象,因而可結(jié)合特征數(shù)量及輸出等,調(diào)整該參數(shù)值,確保模型相對(duì)簡(jiǎn)單但擬合效果良好時(shí)。
3 操作
本例子操作如下:
訓(xùn)練集比例默認(rèn)選擇為:0.8即80%(150*0.8=120個(gè)樣本)進(jìn)行訓(xùn)練決策樹模型,余下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ù)值只是計(jì)算分裂標(biāo)準(zhǔn)的方式,不需要設(shè)置),節(jié)點(diǎn)劃分方式為best法,即為結(jié)合特征的優(yōu)劣順序進(jìn)行分類劃分,如果為了設(shè)置參數(shù)對(duì)比需要考慮,建議可對(duì)該參數(shù)值進(jìn)行切換為random即隨機(jī)特征的優(yōu)先順序,用于對(duì)比模型訓(xùn)練效果。
節(jié)點(diǎn)分列最小樣本量默認(rèn)為2即可,葉節(jié)點(diǎn)最小樣本量默認(rèn)為1即可。需要注意的是:如果數(shù)據(jù)量較大時(shí),建議將該2個(gè)參數(shù)值盡量大,以減少過擬合現(xiàn)象,但該2個(gè)參數(shù)值越大時(shí)通常訓(xùn)練模型的擬合效果越差。具體應(yīng)該以測(cè)試數(shù)據(jù)的擬合效果為準(zhǔn),因?yàn)橛?xùn)練模型容易出現(xiàn)過擬合現(xiàn)象。樹最大深度這個(gè)參數(shù)時(shí),其代表決策樹最多有幾層的意思,該參數(shù)值設(shè)置越大時(shí),訓(xùn)練模型擬合效果通常越好,但可能帶來過擬合情況,本案例出于演示需求,先設(shè)置為4層。(另提示:樹最大深度會(huì)受到節(jié)點(diǎn)分裂最小樣本量、葉節(jié)點(diǎn)最小樣本量的影響,并非設(shè)置為4它一定就會(huì)為4)。
4 SPSSAU輸出結(jié)果
SPSSAU共輸出7項(xiàng)結(jié)果,依次為基本信息匯總,決策樹結(jié)構(gòu)圖,特征模型圖和特征權(quán)重圖,訓(xùn)練集或測(cè)試集模型評(píng)估結(jié)果,測(cè)試集結(jié)果混淆矩陣,模型匯總表和模型代碼,如下說明:
上述表格中,決策樹結(jié)構(gòu)圖用于展示決策樹構(gòu)建的具體過程,通過決策樹結(jié)構(gòu)圖可查看到模型構(gòu)建的具體步驟;特征模型圖和特征權(quán)重圖可用于查看特征的相對(duì)重要性對(duì)比情況;模型評(píng)估結(jié)果(包括訓(xùn)練集或測(cè)試集),其用于對(duì)模型的擬合效果判斷,尤其是測(cè)試集的擬合效果,非常重要,因而SPSSAU單獨(dú)提供測(cè)試集結(jié)果混淆矩陣,用于進(jìn)一步查看測(cè)試集數(shù)據(jù)的效果情況;模型匯總表格將各類參數(shù)值進(jìn)行匯總,并且在最后,SPSSAU附錄核心的決策樹構(gòu)建代碼,需要提示的是:SPSSAU機(jī)器學(xué)習(xí)算法模塊直接調(diào)用sklean包進(jìn)行構(gòu)建,因而研究者可使用核心代碼進(jìn)行復(fù)現(xiàn)使用等。
5文字分析
決策樹結(jié)構(gòu)圖中:第1個(gè)矩陣稱為‘根節(jié)點(diǎn)’,下面為子節(jié)點(diǎn),不能再細(xì)分的為‘葉子節(jié)點(diǎn)’。樹最大深度當(dāng)前設(shè)置為4,上圖中除‘根節(jié)點(diǎn)’外為4層。針對(duì)每個(gè)節(jié)點(diǎn)(根節(jié)點(diǎn)或葉子節(jié)點(diǎn)),其包括四項(xiàng),分別是‘劃分特征及分割點(diǎn)’,gini系數(shù)值,當(dāng)前節(jié)點(diǎn)的樣本量,不同類別的樣本量。如下表格說明:
上述決策樹結(jié)構(gòu)圖時(shí),第1個(gè)點(diǎn)使用X[2],接著使用X[3],接著使用X[1],X[4],接著使用X[2]等,括號(hào)里面數(shù)字表示放入模型的第幾個(gè)X。那么這幾個(gè)X的綜合重要性情況如何,可查看特征權(quán)重圖,如下:
花萼寬的重要性度量值為0.5726,其對(duì)模型的作用力度最大,其次是花瓣長(zhǎng)為0.3555。相對(duì)來看,花萼長(zhǎng)和花瓣寬這兩項(xiàng)的重要性相對(duì)較弱,如果是進(jìn)行特征篩選,可考慮只留下最重要的兩項(xiàng)即可。
解讀完決策樹結(jié)構(gòu)圖和特征重要性圖后,已經(jīng)理解決策樹運(yùn)行原理,其實(shí)質(zhì)上是不斷地對(duì)各個(gè)特征進(jìn)行循環(huán)劃分下去,根深度越深時(shí),其劃分出來后通常擬合效果越好。但訓(xùn)練數(shù)據(jù)擬合效果好,并不一定代表測(cè)試數(shù)據(jù)上也好,訓(xùn)練數(shù)據(jù)擬合效果很容易‘造假’,即過擬合現(xiàn)象。因而接下來對(duì)模型擬合效果進(jìn)行說明。
上表格中分別針對(duì)訓(xùn)練集和測(cè)試集,提供四個(gè)評(píng)估指標(biāo),分別是精確率、召回率、f1-scrore、準(zhǔn)確率,以及平均指標(biāo)和樣本量指標(biāo)等,如下表格說明:
一般來說,f1-score指標(biāo)值最適合,因?yàn)槠渚C合精確率和召回率兩個(gè)指標(biāo),并且可查看其平均值(綜合)指標(biāo),本案例為0.992,接近于1非常高,但訓(xùn)練數(shù)據(jù)指標(biāo)擬合可以‘造假’即可能有過擬合現(xiàn)象,最準(zhǔn)確的是查看‘測(cè)試集數(shù)據(jù)’時(shí)的指標(biāo)情況,本案例時(shí)測(cè)試數(shù)據(jù)占比是20%即30個(gè)樣本,其平均綜合f1-score值 為0.906,可以簡(jiǎn)單理解為模型擬合優(yōu)度為90.6%,依舊比較高(即使小于訓(xùn)練數(shù)據(jù)的0.992),整體說明當(dāng)前模型擬合良好,即可用于特征篩選,數(shù)據(jù)進(jìn)一步預(yù)測(cè)使用等。
另需要提示:當(dāng)訓(xùn)練數(shù)據(jù)的擬合效果遠(yuǎn)好于測(cè)試數(shù)據(jù)時(shí),通常則為‘過擬合現(xiàn)象’,但訓(xùn)練數(shù)據(jù)的擬合效果不好但測(cè)試數(shù)據(jù)擬合效果好時(shí),此種情況也不能使用,可能僅僅是偶然現(xiàn)象。因而可使用的模型應(yīng)該為“訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)上均有良好的擬合效果,并且差別應(yīng)該較小”。
進(jìn)一步地,可查看測(cè)試數(shù)據(jù)的‘混淆矩陣’,即模型預(yù)測(cè)和事實(shí)情況的交叉集合,如下圖:
‘混淆矩陣’時(shí),右下三角對(duì)角線的值越大越好,其表示預(yù)測(cè)值和真實(shí)值完全一致。上圖中A類共11個(gè),其中10個(gè)預(yù)測(cè)準(zhǔn)確,還有1個(gè)被預(yù)測(cè)成C類; B類共13個(gè),11個(gè)預(yù)測(cè)準(zhǔn)確,但2個(gè)被預(yù)測(cè)為C類;C類時(shí)全部預(yù)測(cè)準(zhǔn)確。另外還可通過‘混淆矩陣’自行計(jì)算精確率、召回率和準(zhǔn)確率等指標(biāo)。
最后針對(duì)模型匯總表,其展示構(gòu)建決策樹的各項(xiàng)參數(shù)設(shè)置,包括針對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化正態(tài)處理,參數(shù)值為norm,訓(xùn)練集占比,節(jié)點(diǎn)分裂標(biāo)準(zhǔn)等指標(biāo)值。并且將測(cè)試集合上的模型評(píng)估結(jié)果匯總在一個(gè)表格里面。最后,SPSSAU輸出使用python中slearn包構(gòu)建本次決策樹模型的核心代碼如下:
model = DecisionTreeClassifier(criterion=gini, max_depth=4, min_samples_leaf=1, min_samples_split=2, splitter=best)
model.fit(x_train, y_train)
6 剖析
涉及以下幾個(gè)關(guān)鍵點(diǎn),分別如下:
決策樹模型時(shí)是否需要標(biāo)準(zhǔn)化處理?
一般建議是進(jìn)行標(biāo)準(zhǔn)化處理,通常使用正態(tài)標(biāo)準(zhǔn)化處理方式即可。
訓(xùn)練集比例應(yīng)該選擇多少?
如果數(shù)據(jù)量很大,比如1萬,那么訓(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è)置,建議針對(duì)‘節(jié)點(diǎn)劃分方式’切換best和random,節(jié)點(diǎn)分列最小樣本量往上調(diào),葉節(jié)點(diǎn)最小樣本量往上調(diào),樹最大深度可考慮設(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中決策樹具體算法是什么?
決策樹的具體算法通常包括ID3, C4.5, C5.0 和CART等,SPSSAU當(dāng)前借助sklearn包進(jìn)行決策樹,其算法為CART優(yōu)化版,具體可點(diǎn)擊查看。
https://scikit-learn.org/stable/modules/tree.html#tree-algorithms-id3-c4-5-c5-0-and-cart
SPSSAU進(jìn)行決策樹模型構(gòu)建時(shí),自變量X(特征項(xiàng))中包括定類數(shù)據(jù)如何處理?
決策樹模型時(shí)本身并不單獨(dú)針對(duì)定類數(shù)據(jù)處理,如果有定類數(shù)據(jù),建議對(duì)其啞變量處理后放入,關(guān)于啞變量可點(diǎn)擊查看。
http://spssau.com/front/spssau/helps/otherdocuments/dummy.html
SPSSAU中決策樹剪枝優(yōu)化方式是什么?
決策樹剪枝主要有兩種方式,分別是前置剪枝和后置剪枝,當(dāng)前SPSSAU只提供前置剪枝方式。
SPSSAU中決策樹模型合格的判斷標(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)‘過擬合’現(xiàn)象即假的好結(jié)果,因而一定需要重點(diǎn)關(guān)注測(cè)試數(shù)據(jù)的擬合效果。針對(duì)單一模型,可通過變換參數(shù)調(diào)優(yōu),與此同時(shí),可使用多種機(jī)器學(xué)習(xí)模型,比如使用隨機(jī)森林等,綜合對(duì)比選擇最優(yōu)模型。
SPSSAU進(jìn)行決策樹時(shí)提示數(shù)據(jù)質(zhì)量異常?
當(dāng)前決策樹模型支持分類任務(wù),需要確保標(biāo)簽項(xiàng)(因變量Y)為定類數(shù)據(jù),如果為定量連續(xù)數(shù)據(jù),也或者樣本量較少(或者非會(huì)員僅分析前100個(gè)樣本)時(shí)可能出現(xiàn)無法計(jì)算因而提示數(shù)據(jù)質(zhì)量異常。