日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【算法】决策树原理

發(fā)布時(shí)間:2025/3/21 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【算法】决策树原理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【博客地址】:https://blog.csdn.net/sunyaowu315
【博客大綱地址】:https://blog.csdn.net/sunyaowu315/article/details/82905347


原文:https://blog.csdn.net/zhaocj/article/details/50503450

決策樹(shù)是一種非參數(shù)的監(jiān)督學(xué)習(xí)方法,它主要用于分類和回歸。決策樹(shù)的目的是構(gòu)造一種模型,使之能夠從樣本數(shù)據(jù)的特征屬性中,通過(guò)學(xué)習(xí)簡(jiǎn)單的決策規(guī)則——IF THEN規(guī)則,從而預(yù)測(cè)目標(biāo)變量的值。

例如,在某醫(yī)院內(nèi),對(duì)因心臟病發(fā)作而入院治療的患者,在住院的前24小時(shí)內(nèi),觀測(cè)記錄下來(lái)他們的19個(gè)特征屬性——血壓、年齡、以及其他17項(xiàng)可以綜合判斷病人狀況的重要指標(biāo),用圖1所示的決策樹(shù)判斷病人是否屬于高危患者。在圖1中,圓形為中間節(jié)點(diǎn),也就是樹(shù)的分支,它代表IF THEN規(guī)則的條件;方形為終端節(jié)點(diǎn)(葉節(jié)點(diǎn)),也就是樹(shù)的葉,它代表IF THEN規(guī)則的結(jié)果。我們也把第一個(gè)節(jié)點(diǎn)稱為根節(jié)點(diǎn)。

決策樹(shù)往往采用的是自上而下的設(shè)計(jì)方法,每迭代循環(huán)一次,就會(huì)選擇一個(gè)特征屬性進(jìn)行分叉,直到不能再分叉為止。因此在構(gòu)建決策樹(shù)的過(guò)程中,選擇最佳(既能夠快速分類,又能使決策樹(shù)的深度小)的分叉特征屬性是關(guān)鍵所在。這種“最佳性”可以用非純度(impurity)進(jìn)行衡量。如果一個(gè)數(shù)據(jù)集合中只有一種分類結(jié)果,則該集合最純,即一致性好;反之有許多分類,則不純,即一致性不好。有許多指標(biāo)可以定量的度量這種非純度,最常用的有熵,基尼指數(shù)(Gini Index)和分類誤差,它們的公式分別為:



上述所有公式中,值越大,表示越不純,這三個(gè)度量之間并不存在顯著的差別。式中D表示樣本數(shù)據(jù)的分類集合,并且該集合共有J種分類,pj表示第j種分類的樣本率:

式中N和Nj分別表示集合D中樣本數(shù)據(jù)的總數(shù)和第j個(gè)分類的樣本數(shù)量。把式4帶入式2中,得到:

目前常用的決策樹(shù)的算法包括ID3(Iterative Dichotomiser 3,第3代迭戈二叉樹(shù))、C4.5和CART(ClassificationAnd Regression Tree,分類和回歸樹(shù))。前兩種算法主要應(yīng)用的是基于熵的方法,而第三種應(yīng)用的是基尼指數(shù)的方法。下面我們就逐一介紹這些方法。

ID3是由Ross Quinlan首先提出,它是基于所謂“Occam’srazor”(奧卡姆剃刀),即越簡(jiǎn)單越好,也就是越是小型的決策樹(shù)越優(yōu)于大型的決策樹(shù)。如前所述,我們已經(jīng)有了熵作為衡量樣本集合純度的標(biāo)準(zhǔn),熵越大,越不純,因此我們希望在分類以后能夠降低熵的大小,使之變純一些。這種分類后熵變小的判定標(biāo)準(zhǔn)可以用信息增益(Information Gain)來(lái)衡量,它的定義為:

該式表示在樣本集合D下特征屬性A的信息增益,n表示針對(duì)特征屬性A,樣本集合被劃分為n個(gè)不同部分,即A中包含著n個(gè)不同的值,Ni表示第i個(gè)部分的樣本數(shù)量,E(Di)表示特征屬性A下第i個(gè)部分的分類集合的熵。信息增益越大,分類后熵下降得越快,則分類效果越好。因此我們?cè)贒內(nèi)遍歷所有屬性,選擇信息增益最大的那個(gè)特征屬性進(jìn)行分類。在下次迭代循環(huán)中,我們只需對(duì)上次分類剩下的樣本集合計(jì)算信息增益,如此循環(huán),直至不能再分類為止。

C4.5算法也是由Quinlan提出,它是ID3算法的擴(kuò)展。ID3應(yīng)用的是信息增益的方法,但這種方法存在一個(gè)問(wèn)題,那就是它會(huì)更愿意選擇那些包括很多種類的特征屬性,即哪個(gè)A中的n多,那么這個(gè)A的信息增益就可能更大。為此,C4.5使用信息增益率這一準(zhǔn)則來(lái)衡量非純度,即:

式中,SI(D, A)表示分裂信息值,它的定義為:

該式中的符號(hào)含義與式6相同。同樣的,我們選擇信息增益率最大的那個(gè)特征屬性作為分類屬性。

CART算法是由Breiman等人首先提出,它包括分類樹(shù)和回歸樹(shù)兩種。我們先來(lái)討論分類樹(shù),針對(duì)特征屬性A,分類后的基尼指數(shù)為:

該式中的符號(hào)含義與式6相同。與ID3和C4.5不同,我們選擇分類基尼指數(shù)最小的那個(gè)特征屬性作為分類屬性。當(dāng)我們每次只想把樣本集合分為兩類時(shí),即每個(gè)中間節(jié)點(diǎn)只產(chǎn)生兩個(gè)分支,但如果特征屬性A中有多于2個(gè)的值,即n> 2,這時(shí)我們就需要一個(gè)閾值β,它把D分割成了D1和D2兩個(gè)部分,不同的β得到不同的D1和D2,我們重新設(shè)D1的樣本數(shù)為L(zhǎng),D2的樣本數(shù)為R,因此有L+R = N,則式9可簡(jiǎn)寫(xiě)為:

我們把式5帶入上式中,得到:

式中,∑Lj = L,∑Rj = R。式11只是通過(guò)不同特征屬性A的不同閾值β來(lái)得到樣本集D的不純度,由于D內(nèi)的樣本數(shù)量N是一定的,因此對(duì)式11求最小值問(wèn)題就轉(zhuǎn)換為求式12的最大值問(wèn)題:

以上給出的是分類樹(shù)的計(jì)算方法,下面介紹回歸樹(shù)。兩者的不同之處是,分類樹(shù)的樣本輸出(即響應(yīng)值)是類的形式,如判斷蘑菇是有毒還是無(wú)毒,周末去看電影還是不去。而回歸樹(shù)的樣本輸出是數(shù)值的形式,比如給某人發(fā)放房屋貸款的數(shù)額就是具體的數(shù)值,可以是0到120萬(wàn)元之間的任意值。為了得到回歸樹(shù),我們就需要把適合分類的非純度度量用適合回歸的非純度度量取代。因此我們將熵計(jì)算用均方誤差替代:

式中N表示D集合的樣本數(shù)量,yi和ri分別為第i個(gè)樣本的輸出值和預(yù)測(cè)值。如果我們把樣本的預(yù)測(cè)值用樣本輸出值的平均來(lái)替代,則式13改寫(xiě)為

上式表示了集合D的最小均方誤差,如果針對(duì)于某種特征屬性A,我們把集合D劃分為s個(gè)部分,則劃分后的均方誤差為:

式中Ni表示被劃分的第i個(gè)集合Di的樣本數(shù)量。式15與式14的差值為劃分為s個(gè)部分后的誤差減小:

與式6所表示的信息增益相似,我們尋求的是最大化的誤差減小,此時(shí)就得到了最佳的s個(gè)部分的劃分。

同樣的,當(dāng)我們僅考慮二叉樹(shù)的情況時(shí),即每個(gè)中間節(jié)點(diǎn)只有兩個(gè)分支,此時(shí)s= 2,基于特征屬性A的值,集合D被閾值β劃分為D1和D2兩個(gè)集合,每個(gè)集合的樣本數(shù)分別為L(zhǎng)和R,則:


把式14帶入上式,得:

式中,yi是屬于集合D的樣本響應(yīng)值,li和ri分別是屬于集合D1和D2的樣本響應(yīng)值。對(duì)于某個(gè)節(jié)點(diǎn)來(lái)說(shuō),它的樣本數(shù)量以及樣本響應(yīng)值的和是一個(gè)定值,因此式18的結(jié)果完全取決于方括號(hào)內(nèi)的部分,即:

因此求式18的最大值問(wèn)題就轉(zhuǎn)變?yōu)榍笫?9的最大值問(wèn)題。

我們按照樣本響應(yīng)值是類的形式,還是數(shù)值的形式,把決策樹(shù)分成了分類樹(shù)和回歸樹(shù),它們對(duì)應(yīng)不同的計(jì)算公式。那么表示特征屬性的形式也會(huì)有這兩種形式,即類的形式和數(shù)值的形式,比如決定是否出去踢球,取決于兩個(gè)條件:風(fēng)力和氣溫。風(fēng)力的表示形式是:無(wú)風(fēng)、小風(fēng)、中風(fēng)、大風(fēng),氣溫的表示形式就是具體的攝氏度,如-10℃~40℃之間。風(fēng)力這個(gè)特征屬性就是類的形式,而氣溫就是數(shù)值的形式。又比如決定發(fā)放房屋貸款,其金額取決于兩個(gè)條件:是否有車(chē)有房和年薪。有車(chē)有房的表示形式是:無(wú)車(chē)無(wú)房、有車(chē)無(wú)房、無(wú)車(chē)有房、有車(chē)有房,而年薪的表示形式就是具體的錢(qián)數(shù),如0~20萬(wàn)。有車(chē)有房這個(gè)特征屬性就是類的形式,年薪就是數(shù)值的形式。因此在分析樣本的特征屬性時(shí),我們要把決策樹(shù)分為四種情況:特征為類的分類樹(shù)(如決定是否踢球的風(fēng)力)、特征為數(shù)值的分類樹(shù)(如決定是否踢球的溫度)、特征為類的回歸樹(shù)(如發(fā)放貸款的有車(chē)有房)和特征為數(shù)值的回歸樹(shù)(如發(fā)放貸款的年薪)。由于特征形式不同,所以計(jì)算方法上有所不同:

Ⅰ、特征為類的分類樹(shù):對(duì)于兩類問(wèn)題,即樣本的分類(響應(yīng)值)只有兩種情況:響應(yīng)值為0和1,按照特征屬性的類別的樣本響應(yīng)值為1的數(shù)量的多少進(jìn)行排序。例如我們采集20個(gè)樣本來(lái)構(gòu)建是否踢球分類樹(shù),設(shè)出去踢球的響應(yīng)值為1,不踢球的響應(yīng)值為0,針對(duì)風(fēng)力這個(gè)特征屬性,響應(yīng)值為1的樣本有14個(gè),無(wú)風(fēng)有6個(gè)樣本,小風(fēng)有5個(gè),中風(fēng)2個(gè),大風(fēng)1個(gè),則排序的結(jié)果為:大風(fēng)<中風(fēng)<小風(fēng)<無(wú)風(fēng)。然后我們按照這個(gè)順序依次按照二叉樹(shù)的分叉方式把樣本分為左分支和右分支,并帶入式12求使該式為最大值的那個(gè)分叉方式,即先把是大風(fēng)的樣本放入左分支,其余的放入右分支,帶入式12,得到A,再把大風(fēng)和中風(fēng)放入左分支,其余的放入右分支,帶入式12,得到B,再把大風(fēng)、中風(fēng)和小風(fēng)放入左分支,無(wú)風(fēng)的放入右分支,計(jì)算得到C,比較A、B、C,如果最大值為C,則按照C的分叉方式劃分左右分支,其中閾值β可以設(shè)為3。對(duì)于非兩類問(wèn)題,采用的是聚類的方法。

Ⅱ、特征為數(shù)值的分類樹(shù):由于特征屬性是用數(shù)值進(jìn)行表示,我們就按照數(shù)值的大小順序依次帶入式12,計(jì)算最大值。如一共有14個(gè)樣本,按照由小至大的順序?yàn)?#xff1a;abcdefghijklmn,第一次分叉為:a|bcdefghijklmn,豎線“|”的左側(cè)被劃分到左分支,右側(cè)被劃分到右分支,帶入式12計(jì)算其值,然后第二次分叉:ab|cdefghijklmn,同理帶入式12計(jì)算其值,以此類推,得到這13次分叉的最大值,該種分叉方式即為最佳的分叉方式,其中閾值β為分叉的次數(shù)。

Ⅲ、特征為類的回歸樹(shù):計(jì)算每種特征屬性各個(gè)種類的平均樣本響應(yīng)值,按照該值的大小進(jìn)行排序,然后依次帶入式19,計(jì)算其最大值。

Ⅳ、特征為數(shù)值的回歸樹(shù):該種情況與特征為數(shù)值的分類樹(shù)相同,就按照數(shù)值的大小順序依次帶入式19,計(jì)算最大值。

在訓(xùn)練決策樹(shù)時(shí),還有三個(gè)技術(shù)問(wèn)題需要解決。第一個(gè)問(wèn)題是,對(duì)于分類樹(shù),我們還需要考慮一種情況,當(dāng)用戶想要檢測(cè)一些非常罕見(jiàn)的異常現(xiàn)象的時(shí)候,這是非常難辦到的,這是因?yàn)橛?xùn)練可能包含了比異常多得多的正常情況,那么很可能分類結(jié)果就是認(rèn)為每一個(gè)情況都是正常的。為了避免這種情況的出現(xiàn),我們需要設(shè)置先驗(yàn)概率,這樣異常情況發(fā)生的概率就被人為的增加(可以增加到0.5甚至更高),這樣被誤分類的異常情況的權(quán)重就會(huì)變大,決策樹(shù)也能夠得到適當(dāng)?shù)恼{(diào)整。先驗(yàn)概率需要根據(jù)各自情況人為設(shè)置,但還需要考慮各個(gè)分類的樣本率,因此這個(gè)先驗(yàn)值還不能直接應(yīng)用,還需要處理。設(shè)Qj為我們?cè)O(shè)置的第j個(gè)分類的先驗(yàn)概率,Nj為該分類的樣本數(shù),則考慮了樣本率并進(jìn)行歸一化處理的先驗(yàn)概率qj為:

把先驗(yàn)概率帶入式12中,則得到:

第二個(gè)需要解決的問(wèn)題是,某些樣本缺失了某個(gè)特征屬性,但該特征屬性又是最佳分叉屬性,那么如何對(duì)該樣本進(jìn)行分叉呢?目前有幾種方法可以解決該問(wèn)題,一種是直接把該樣本刪除掉;另一種方法是用各種算法估計(jì)該樣本的缺失屬性值。還有一種方法就是用另一個(gè)特征屬性來(lái)替代最佳分叉屬性,該特征屬性被稱為替代分叉屬性。因此在計(jì)算最佳分叉屬性的同時(shí),還要計(jì)算該特征屬性的替代分叉屬性,以防止最佳分叉屬性缺失的情況。CART算法就是采用的該方法,下面我們就來(lái)介紹該方法。

尋找替代分叉屬性總的原則就是使其分叉的效果與最佳分叉屬性相似,即分叉的誤差最小。我們?nèi)匀桓鶕?jù)特征屬性是類還是數(shù)值的形式,也把替代分叉屬性的計(jì)算分為兩種情況。

當(dāng)特征屬性是類的形式的時(shí)候,當(dāng)最佳分叉屬性不是該特征屬性時(shí),會(huì)把該特征屬性的每個(gè)種類分叉為不同的分支,例如當(dāng)最佳分叉屬性不是風(fēng)力時(shí),極有可能把5個(gè)無(wú)風(fēng)的樣本分叉為不同的分支(如3個(gè)屬于左分支,2個(gè)屬于右分支),但當(dāng)最佳分叉屬性是風(fēng)力時(shí),這種情況就不會(huì)發(fā)生,也就是5個(gè)無(wú)風(fēng)的樣本要么屬于左分支,要么屬于右分支。因此我們把被最佳分叉屬性分叉的特征屬性種類的分支最大樣本數(shù)量作為該種類的分叉值,計(jì)算該特征屬性所有種類的這些分叉值,最終這些分叉值之和就作為該替代分叉屬性的分叉值。我們還看前面的例子,無(wú)風(fēng)的分叉值為3,再計(jì)算小風(fēng)、中風(fēng)、大風(fēng)的分叉值,假如它們的值分別為4、4、3,則把風(fēng)力作為替代分叉屬性的分叉值為14。按照該方法再計(jì)算其他特征屬性是類形式的替代分叉值,則替代性由替代分叉值按從大到小進(jìn)行排序。在用替代分叉屬性分叉時(shí)那些左分支大于右分支樣本數(shù)的種類被分叉為左分支,反之為右分支,如上面的例子,無(wú)風(fēng)的樣本被分叉為左分支。

當(dāng)特征屬性是數(shù)值的形式的時(shí)候,樣本被分割成了四個(gè)部分:LL、LR、RL和RR,前一個(gè)字母表示被最佳分叉屬性分叉為左右分支,后一個(gè)字母表示被替代分叉屬性分叉為左右分支,如LR表示被最佳分叉屬性分叉為左分支,但被替代分叉屬性分叉為右分支的樣本,因此LL和RR表示的是被替代分叉屬性分叉正確的樣本,而LR和RL是被替代分叉屬性分叉錯(cuò)誤的樣本,在該特征屬性下,選取閾值對(duì)樣本進(jìn)行分割,使LL+RR或LR+RL達(dá)到最大值,則最終max{LL+RR,LR+RL}作為該特征屬性的替代分叉屬性的分叉值。按照該方法再計(jì)算其他特征屬性是數(shù)值形式的替代分叉值,則替代性也由替代分叉值按從大到小進(jìn)行排序。最終我們選取替代分叉值最大的那個(gè)特征屬性作為該最佳分叉屬性的替代分叉屬性。

為了讓替代分叉屬性與最佳分叉屬性相比較,我們還需要對(duì)替代分叉值進(jìn)行規(guī)范化處理,如果替代分叉屬性是類的形式,則替代分叉值需要乘以式12再除以最佳分叉屬性中的種類數(shù)量,如果替代分叉屬性是數(shù)值的形式,則替代分叉值需要乘以式19再除以所有樣本的數(shù)量。規(guī)范化后的替代分叉屬性如果就是最佳分叉屬性時(shí),兩者的值是相等的。

第三個(gè)問(wèn)題就是過(guò)擬合。由于決策樹(shù)的建立完全是依賴于訓(xùn)練樣本,因此該決策樹(shù)對(duì)該樣本能夠產(chǎn)生完全一致的擬合效果。但這樣的決策樹(shù)對(duì)于預(yù)測(cè)樣本來(lái)說(shuō)過(guò)于復(fù)雜,對(duì)預(yù)測(cè)樣本的分類效果也不夠精確。這種現(xiàn)象就稱為過(guò)擬合。

將復(fù)雜的決策樹(shù)進(jìn)行簡(jiǎn)化的過(guò)程稱為剪枝,它的目的是去掉一些節(jié)點(diǎn),包括葉節(jié)點(diǎn)和中間節(jié)點(diǎn)。剪枝常用的方法有預(yù)剪枝和后剪枝兩種。預(yù)剪枝是在構(gòu)建決策樹(shù)的過(guò)程中,提前終止決策樹(shù)的生長(zhǎng),從而避免過(guò)多的節(jié)點(diǎn)的產(chǎn)生。該方法雖然簡(jiǎn)單但實(shí)用性不強(qiáng),因?yàn)槲覀兒茈y精確的判斷何時(shí)終止樹(shù)的生長(zhǎng)。后剪枝就是在決策樹(shù)構(gòu)建完后再去掉一些節(jié)點(diǎn)。常見(jiàn)后剪枝方法有四種:悲觀錯(cuò)誤剪枝(PEP)、最小錯(cuò)誤剪枝(MEP)、代價(jià)復(fù)雜度剪枝(CCP)和基于錯(cuò)誤的剪枝(EBP)。CCP算法能夠應(yīng)用于CART算法中,它的本質(zhì)是度量每減少一個(gè)葉節(jié)點(diǎn)所得到的平均錯(cuò)誤,在這里我們重點(diǎn)介紹CCP算法。

CCP算法會(huì)產(chǎn)生一系列樹(shù)的序列{T0,T1,…,Tm},其中T0是由訓(xùn)練得到的最初的決策樹(shù),而Tm只含有一個(gè)根節(jié)點(diǎn)。序列中的樹(shù)是嵌套的,也就是序列中的Ti+1是由Ti通過(guò)剪枝得到的,即實(shí)現(xiàn)用Ti+1中一個(gè)葉節(jié)點(diǎn)來(lái)替代Ti中以該節(jié)點(diǎn)為根的子樹(shù)。這種被替代的原則就是使誤差的增加率α最小,即

式中,R(n)表示Ti中節(jié)點(diǎn)n的預(yù)測(cè)誤差,R(nt)表示Ti中以節(jié)點(diǎn)n為根節(jié)點(diǎn)的子樹(shù)的所有葉節(jié)點(diǎn)的預(yù)測(cè)誤差之和,|nt|為該子樹(shù)葉節(jié)點(diǎn)的數(shù)量,|nt|也被稱為復(fù)雜度,因?yàn)槿~節(jié)點(diǎn)越多,復(fù)雜性當(dāng)然就越強(qiáng)。因此α的含義就是用一個(gè)節(jié)點(diǎn)n來(lái)替代以n為根節(jié)點(diǎn)的所有|nt|個(gè)節(jié)點(diǎn)的誤差增加的規(guī)范化程度。在Ti中,我們選擇最小的α值的節(jié)點(diǎn)進(jìn)行替代,最終得到Ti+1。以此類推,每需要得到一棵決策樹(shù),都需要計(jì)算其前一棵決策樹(shù)的α值,根據(jù)α值來(lái)對(duì)前一棵決策樹(shù)進(jìn)行剪枝,直到最終剪枝到只剩下含有一個(gè)根節(jié)點(diǎn)的Tm為止。

根據(jù)決策樹(shù)是分類樹(shù)還是回歸樹(shù),節(jié)點(diǎn)的預(yù)測(cè)誤差的計(jì)算也分為兩種情況。在分類樹(shù)下,我們可以應(yīng)用上面介紹過(guò)的式1~式3中的任意一個(gè),如果我們應(yīng)用式3來(lái)表示節(jié)點(diǎn)n的預(yù)測(cè)誤差,則:

式中,Nj表示節(jié)點(diǎn)n下第j個(gè)分類的樣本數(shù),N為該節(jié)點(diǎn)的所有樣本數(shù),max{Nj}表示在m個(gè)分類中,擁有樣本數(shù)最多的那個(gè)分類的樣本數(shù)量。在回歸樹(shù)下,我們可以應(yīng)用式14來(lái)表示節(jié)點(diǎn)n的預(yù)測(cè)誤差:

式中,yi表示第i個(gè)樣本的響應(yīng)值,N為該節(jié)點(diǎn)的樣本數(shù)量。我們把式23和式24的分子部分稱為節(jié)點(diǎn)的風(fēng)險(xiǎn)值。

我們用全部樣本得到的決策樹(shù)序列為{T0,T1,…,Tm},其所對(duì)應(yīng)的α值為α0<α1<…<αm。下一步就是如何從這個(gè)序列中最優(yōu)的選擇一顆決策樹(shù)Ti。而與其說(shuō)找到最優(yōu)的Ti,不如說(shuō)找到其所對(duì)應(yīng)的αi。這一步驟通常采用的方法是交叉驗(yàn)證(Cross-Validation)。

我們把L個(gè)樣本隨機(jī)劃分為數(shù)量相等的V個(gè)子集Lv,v=1,…,V。第v個(gè)訓(xùn)練樣本集為:

則Lv被用來(lái)做L(v)的測(cè)試樣本集。對(duì)每個(gè)訓(xùn)練樣本集L(v)按照CCP算法得到?jīng)Q策樹(shù)的序列{T0(v),T1(v),…,Tm(v) },其對(duì)應(yīng)的α值為α0(v)<α1(v)<…<αm(v)。α值的計(jì)算仍然采用式22。對(duì)于分類樹(shù)來(lái)說(shuō),第v個(gè)子集的節(jié)點(diǎn)n的預(yù)測(cè)誤差為:

式中,Nj(v)表示訓(xùn)練樣本集L(v)中節(jié)點(diǎn)n的第j個(gè)分類的樣本數(shù),N(v)為L(zhǎng)(v)中節(jié)點(diǎn)n的所有樣本數(shù),max{Nj(v)}表示在m個(gè)分類中,L(v)中節(jié)點(diǎn)n擁有樣本數(shù)最多的那個(gè)分類的樣本數(shù)量。對(duì)于回歸樹(shù)來(lái)說(shuō),第v個(gè)子集的節(jié)點(diǎn)n的預(yù)測(cè)誤差為:

式中,yj(v)表示訓(xùn)練樣本集L(v)中節(jié)點(diǎn)n的第i個(gè)樣本的響應(yīng)值。我們?nèi)匀话咽?6和式27的分子部分稱交叉驗(yàn)證子集中的節(jié)點(diǎn)風(fēng)險(xiǎn)值。

我們由訓(xùn)練樣本集得到了樹(shù)序列,然后應(yīng)用這些樹(shù)對(duì)測(cè)試樣本集進(jìn)行測(cè)試,測(cè)試的結(jié)果用錯(cuò)誤率來(lái)衡量,即被錯(cuò)誤分類的樣本數(shù)量。對(duì)于分類樹(shù)來(lái)說(shuō),節(jié)點(diǎn)n的錯(cuò)誤率為:

式中,Nv表示測(cè)試樣本集Lv中節(jié)點(diǎn)n的所有樣本數(shù),Nv,j表示Lv中第j個(gè)分類的樣本數(shù),這個(gè)j是式26中max{|Lj(v)|}所對(duì)應(yīng)的j。對(duì)于回歸樹(shù)來(lái)說(shuō),節(jié)點(diǎn)n的錯(cuò)誤率為:

式中,yv,i表示Lv的第i個(gè)樣本響應(yīng)值。決策樹(shù)的總錯(cuò)誤率E(v)等于該樹(shù)所有葉節(jié)點(diǎn)的錯(cuò)誤率之和。

雖然交叉驗(yàn)證子集決策樹(shù)序列T(v)的數(shù)量要與由全體樣本得到的決策樹(shù)序列T的數(shù)量相同,但兩者構(gòu)建的形式不同,它需要比較兩者的α值后再來(lái)構(gòu)建。而為了比較由全體樣本訓(xùn)練得到α值與交叉驗(yàn)證子集的α(v)值之間的大小,我們還需要對(duì)α值進(jìn)行處理,即

其中α’0 = 0,而α’m為無(wú)窮大。

我們?cè)O(shè)按照式22得到的初始訓(xùn)練子集L(v)決策樹(shù)序列為{T0(v),T1(v),…,Tm(v)},其所對(duì)應(yīng)的α(v)值為{α0(v), α1(v),…, αm(v)}。最終的樹(shù)序列也是由這些T(v)組成,并且也是嵌套的形式,但可以重復(fù),而且必須滿足:

該式的含義是T(v)中第k個(gè)子樹(shù)的α(v)值要小于α’k的最大的α(v)所對(duì)應(yīng)的子樹(shù),因此最終的樹(shù)序列有可能是這種形式:T0(v),T0(v),T1(v),T1(v),T2(v),T2(v),T2(v),T2(v),…,直到序列中樹(shù)的數(shù)量為m為止。

子集的決策樹(shù)序列構(gòu)建好了,下面我們就可以計(jì)算V個(gè)子集中樹(shù)序列相同的總錯(cuò)誤率之和,即

則最佳的子樹(shù)索引J為:

最終我們選擇決策樹(shù)序列{T0,T1,…,Tm}中第J棵樹(shù)為最佳決策樹(shù),該樹(shù)的總錯(cuò)誤率最小。

如果我們?cè)谶x擇決策樹(shù)時(shí)使用1-SE(1 Standard Error of Minimum Error)規(guī)則的話,那么有可能最終的決策樹(shù)不是錯(cuò)誤率最小的子樹(shù),而是錯(cuò)誤率略大,但樹(shù)的結(jié)構(gòu)更簡(jiǎn)單的那顆決策樹(shù)。我們首先計(jì)算誤差范圍SE:

式中,EJ表示最佳子樹(shù)的總錯(cuò)誤率,N為總的樣本數(shù)。則最終被選中的決策樹(shù)的總錯(cuò)誤率EK要滿足:

并且決策樹(shù)的結(jié)構(gòu)最簡(jiǎn)單。

以上我們完整并詳細(xì)的介紹了構(gòu)建決策樹(shù),也就是訓(xùn)練決策樹(shù)的過(guò)程,在這個(gè)過(guò)程中我們沒(méi)有放過(guò)每個(gè)技術(shù)細(xì)節(jié)。而預(yù)測(cè)樣本很簡(jiǎn)單,只要把樣本按照最佳分叉屬性(或替代分叉屬性)一次一次分叉,直到到達(dá)決策樹(shù)的葉節(jié)點(diǎn),該葉節(jié)點(diǎn)的值就是該預(yù)測(cè)樣本的響應(yīng)值。

參考
感謝博主趙春江的博文:Decision Trees

總結(jié)

以上是生活随笔為你收集整理的【算法】决策树原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。