3.1.1.2 決策樹

決策樹

原理

《機(jī)器學(xué)習(xí)》周志華

4.1 基本流程

決策樹學(xué)習(xí)的目的是為了產(chǎn)生一棵泛化能力強(qiáng),即處理未見示例能力強(qiáng)的決策樹,其基本流程遵循簡單且直觀的“分而治之”(divide-and-conquer)策略。

  • 三種決策樹遞歸返回情況:
    • 當(dāng)前結(jié)點(diǎn)包含的樣本全屬于同一類別,無需劃分。
    • 當(dāng)前屬性集為空,或所有樣本在所有屬性上取值相同,無法劃分。
      • 把當(dāng)前結(jié)點(diǎn)標(biāo)記為葉節(jié)點(diǎn),并將其類別設(shè)定為該結(jié)點(diǎn)所含樣本最多的類別。(利用當(dāng)前結(jié)點(diǎn)的后驗(yàn)分布)
    • 當(dāng)前結(jié)點(diǎn)包含的樣本集合為空,不能劃分
      • 把當(dāng)前結(jié)點(diǎn)標(biāo)記為葉節(jié)點(diǎn),將其類別設(shè)定為其父節(jié)點(diǎn)所含樣本最多的類別。(利用父節(jié)點(diǎn)的樣本分布作為當(dāng)前結(jié)點(diǎn)的先驗(yàn)分布)
4.2 劃分選擇

決策樹學(xué)習(xí)的關(guān)鍵是如何選擇最優(yōu)劃分屬性。一般而言,隨著劃分過程不斷進(jìn)行,我們希望決策樹的分支結(jié)點(diǎn)所包含的樣本盡可能屬于同一類別,即結(jié)點(diǎn)的“純度”(purity)越來越高。

  • 信息增益(Information Gain)
    信息熵(information entropy)是度量樣本集合純度最常用的一種指標(biāo)。信息熵越小,則樣本的純度越高。
    一般而言,信息增益越大,則意味著使用屬性a來進(jìn)行劃分所獲得的“純度提升”越大。
    信息增益準(zhǔn)則對可取值數(shù)據(jù)較多的屬性有所偏好。

  • 增益率(Gain Ratio)
    增益率準(zhǔn)則對可取值數(shù)目較少的屬性有所偏好。因此算法并非直接選擇增益率最大的候選劃分屬性,而是使用了一個啟發(fā)式。先從候選劃分屬性中劃出信息增益高于平均水平的屬性,再從中選擇增益率最高的。

  • 基尼指數(shù)(Gini Index)
    CADT決策樹使用“基尼指數(shù)”來選擇劃分屬性。數(shù)據(jù)集D的純度可以用基尼值來度量。
    直觀來說,Gini(D)反映了從數(shù)據(jù)集D中隨機(jī)抽取兩個樣本,其類別標(biāo)記不一致的概率。因此Gini(D)越小,則數(shù)據(jù)集D的純度越高。
    選擇那個使得劃分后基尼指數(shù)最小的屬性作為最有劃分屬性。

4.3 剪枝處理(Pruning)

剪枝(Pruning)是決策樹學(xué)習(xí)算法對付“過擬合”的主要手段。
如何判斷決策樹泛化性能是否提升呢?見2.2性能評估方法。本節(jié)采用留出法,即預(yù)留一部分?jǐn)?shù)據(jù)用作“驗(yàn)證集”以進(jìn)行性能評估。

  • 預(yù)剪枝(Prepruning)
    預(yù)剪枝是指在決策樹生成過程中,對每個結(jié)點(diǎn)在劃分前先進(jìn)行估計(jì)。若當(dāng)前結(jié)點(diǎn)的劃分不能帶來決策樹泛化性能提升,則停止劃分并將當(dāng)前結(jié)點(diǎn)標(biāo)記為葉結(jié)點(diǎn)。
    預(yù)剪枝使得決策樹的很多分支都沒有“展開”,這不僅降低了過擬合的風(fēng)險(xiǎn),還顯著減少了決策樹的訓(xùn)練時間開銷和測試時間開銷。但另一方面,有些分支的當(dāng)前劃分雖然不能提升泛化性能,甚至可能導(dǎo)致泛化性能暫時下降,但在其基礎(chǔ)上進(jìn)行的后續(xù)劃分卻有可能導(dǎo)致性能顯著提高。預(yù)剪枝基于“貪心”本質(zhì)禁止這些分枝展開,給預(yù)剪枝帶來了欠擬合的風(fēng)險(xiǎn)。

  • 后剪枝(Postpruning)
    后剪枝先從訓(xùn)練集生成一棵完整的決策樹,然后自底向上地對非葉結(jié)點(diǎn)進(jìn)行考察。若將該結(jié)點(diǎn)對應(yīng)的子樹替換為葉結(jié)點(diǎn)能帶來決策樹泛化性能提升,則將該子樹替換為葉結(jié)點(diǎn)。
    一般情況下,后剪枝決策樹的欠擬合風(fēng)險(xiǎn)很小,泛化性能往往優(yōu)于預(yù)剪枝決策樹。但后剪枝過程是生成完全決策樹之后進(jìn)行的,并且要自底向上地對樹中的所有非葉結(jié)點(diǎn)進(jìn)行逐一考察,因此其訓(xùn)練時間開銷比未剪枝決策樹和預(yù)剪枝決策樹都要大得多。

4.4 連續(xù)預(yù)缺失值
  • 連續(xù)值處理
    連續(xù)值離散化處理:最簡單采用二分法(bi-partition)
    需要注意的是與離散屬性不同。若當(dāng)前結(jié)點(diǎn)劃分屬性為連續(xù)屬性,該屬性還可以作為其后代結(jié)點(diǎn)的劃分屬性。

  • 缺失值處理

    • 問題一:如何在屬性值缺失的情況下進(jìn)行劃分屬性選擇?
    • 問題二:給定劃分屬性,若樣本在該屬性上的值缺失,如何對樣本進(jìn)行劃分?
      讓同一個樣本以不同的概率劃入到不同的子結(jié)點(diǎn)中去。
4.5 多變量決策樹

若我們把每個屬性視為空間中的一個坐標(biāo)軸,則d個屬性描述的樣本就對應(yīng)了d維空間中的一個數(shù)據(jù)點(diǎn),對樣本分類則意味著在這個坐標(biāo)空間中尋找不同樣本之間的分類邊界。決策樹所形成的分類邊界有一個明顯的特點(diǎn):軸平行(axis-parallel),即它的分類邊界由若干個與坐標(biāo)軸平行的分段組成
分類邊界的每一段都是與坐標(biāo)軸平行的,這樣的分類邊界使得學(xué)習(xí)結(jié)果有較好的可解釋性,因?yàn)槊恳欢蝿澐侄贾苯訉?yīng)了某個屬性值。但在學(xué)習(xí)任務(wù)的真實(shí)分類邊界比較復(fù)雜時,必須使用很多段劃分才能獲得較好的近似。此時的決策樹會相當(dāng)復(fù)雜,由于要進(jìn)行大量的屬性測試,預(yù)測時間開銷會很大。
若能使用斜的劃分邊界,則決策樹模型將大為簡化。“多變量決策樹”(multivariate decision tree)就是能實(shí)現(xiàn)這一的“斜劃分”甚至更復(fù)雜劃分的決策樹。以實(shí)現(xiàn)斜劃分的多變量決策樹為例,在此類決策樹中,非葉結(jié)點(diǎn)不再是僅對某個屬性,而是對屬性的線性組合進(jìn)行測試;換言之,每個非葉結(jié)點(diǎn)是一個線性分類器。在多變量學(xué)習(xí)過程中,不是為每個非葉結(jié)點(diǎn)尋找一個最優(yōu)劃分屬性,而是試圖建立一個合適的線性分類器。

Hello World

tensor forest
hello_AI

學(xué)術(shù)

工程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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