1. 程式人生 > >《統計學習方法(李航)》決策樹學習方法

《統計學習方法(李航)》決策樹學習方法

  • 作者:jliang

    https://blog.csdn.net/jliang3

  •  
  • 1.重點歸納
  • 1)特徵選擇依據
  • ID3:資訊增益最大:
  • C4.5:資訊增益比最大:
  • ,n為特徵A的取值個數,Di為特徵A第i個取值的集合
  • CART:基尼指數/平方誤差最小
  • 對於特徵A的基尼指數:
  • 基尼指數:
  • 平方誤差:
  • 2)損失函式
  • ID3/C4.5:(各結點的熵)
  • CART:,CT為預測誤差,即誤差平方/基尼指數

3)決策樹可以是二叉樹或非二叉樹

(1)ID3和C4.5,離散值且不要求生成二叉樹:此時用屬性的每一個劃分作為一個分支

(2)離散值且要求生成二叉樹:使用屬性劃分一個子集進行測試,按照“屬於此子集”和“不屬於此子集”分為兩個分支

(3)連續值:確定一個值作為分裂點split point,按>split point和<=split point生成兩個分支。

4)ID3和C4.5只能用於分類,CART既可以用於分類也可以用於迴歸。

2.決策樹模型與學習

1)決策樹可以看成一個if-then規則集合,每一個例項都被一條路勁或規則所覆蓋,而且只被一條路徑或一條規則所覆蓋。

2)決策樹還表示給定特徵條件下類的條件概率分佈。

(1)每一條路徑對應於劃分的一個單元,決策樹所表示的條件概率分佈由各個單元給定條件下類的條件概率分佈組成。

(2)表示為P(Y|X),X取值於給定劃分下單元的集合,Y取值於類的集合,各葉結點上的條件概率屬於某一類的概率較大。

(3)深淺不同的決策樹對應著不同複雜度的概率模型。

3)決策樹學習

(1)決策樹學習本質是從訓練資料集彙總歸納出一組分類規則。

(2)決策樹學習的損失函式通常是正則化的極大似然函式。學習策略是以損失函式為目標函式的最小化。

(3)從所有可能的決策樹中選取最優決策樹時NP完全問題(Non-deterministic Polynomial,即多項式複雜程度的非確定性問題)。現實中決策樹學習演算法通常採用啟發式方法,近似求解最優化問題。

(4)決策樹學習演算法包含特徵選擇、決策樹生成與決策樹剪枝過程。

(5)決策樹的生成對應於模型的區域性選擇,決策樹的剪枝對應於模型的全域性選擇。決策樹生成只考慮區域性最優,決策樹剪枝考慮全域性最優

3. 特徵選擇

1)熵(entropy)是表示隨機變數不確定性的度量(混亂程度)

(1)熵定義

(2)熵只依賴X的分佈,而與X的取值無關

(3)熵越大,隨機變數的不確定性就越大

(4)當每種類別的概率一樣時,熵值最大。

 

2)條件熵

(1)隨機變數X給定的條件下隨機變數Y的條件熵

(2)

         ,n為X的取值個數

3)由於我們不知道真實的概率分佈,所以熵和條件熵中的概率由資料估計(特別極大似然估計)得到,所對應的熵和條件熵分別稱為經驗熵和經驗條件熵。

4)資訊增益

(1)資訊增益(information gain)表示得知特徵X的資訊而使得類Y的資訊的不確定性減少的程度。

(2)特徵A對訓練資料集D的資訊增益g(D,A):集合D的經驗熵H(D)與特徵A給定條件下D的經驗條件熵H(D|A)之差,即

(3)決策樹學習中的資訊增益等價於訓練資料集中類與特徵的互資訊

5)資訊增益演算法

(1)計算資料集D的經驗熵

  • D為總樣本數
  • Ck為類別k的數目

(2)計算特徵A對資料集D的經驗條件熵

  • n為特徵X的取值數量
  • Di為特徵X第i類取值的集合,Di為該集合的數量
  • Dik為特徵X值第i類取值集合中第k類Y值取值集合,Dik為該集合的數量

(3)計算資訊增益g(D,A)=HD-H(D|A)

6)資訊增益計算例子

 

      

       有自己房子的資訊增益最大,所以選擇它為最優特徵。

7)資訊增益比

(1)資訊增益分類的缺點:存在偏向於選擇取值較多的特徵的問題。使用資訊增益比(information gain ratio)可以校正這問題。

(2)資訊增益比:

  • ,n為特徵A的取值個數,Di為特徵A第i個取值的集合
  • HA(D)為特徵A的經驗熵(分裂資訊),HD為為關於Y的經驗熵

4.決策樹生成

1)ID3

(1)核心是在決策樹各個結點上的應用資訊增益準則選擇特徵,遞迴地構建決策樹。相當於用極大似然法進行概率模型的選擇。

(2)ID3可以有多個分支(非二叉樹),但不能處理特徵值為連續值的情況。如果一個特徵有N個取值,資料將切分N份(N個分支),該特徵在之後的演算法執行中不再起作用。

(3)缺點:一般會選取有較多屬性值的特徵,如標識ID。

2)C4.5

(1)C4.5在ID3的基礎上進行了改進,C4.5生成過程使用資訊增益比選擇特徵。

5.決策樹的剪枝

1)決策樹生成演算法遞迴地產生決策樹,直到不能繼續下去為止,往往出現過擬合現象。解決這個問題的辦法是考慮決策樹的複雜度,對已生成的決策樹進行簡化,這個簡化過程稱為剪枝。

2)剪枝是從已生成的樹上裁掉一些子樹或結點,並將其根結點或父結點作為新的葉結點。

3)損失函式

(1)決策樹剪枝通過極小化決策樹整體的損失函式或代價函式來實現。

(2)損失函式:

         經驗熵:

         損失函式:

  • T的葉子結點個數為T
  • t是樹T的葉結點,該葉結點有Nt個樣本點
  • Ntk為葉結點t下類別k的數量

(3)CT表示模型對訓練資料的預測誤差,即模型與訓練資料的擬合程度。T表示模型複雜度,引數α控制兩者之間的影響。

  • 較大的α促使選擇較簡單的模型
  • 較小的α促使選擇較複雜的模型
  • α=0意味著只考慮模型與訓練資料的擬合程度,不考慮模型的複雜度。
  • 4)決策樹生成只考慮通過提高資訊增益/資訊增益比對訓練資料進行更好的擬合。而決策樹剪枝通過優化損失函式還考慮了減小模型複雜度。

       決策樹生成學習區域性的模型,而決策樹剪枝學習整體的模型。

5)剪枝步驟

(1)計算每個結點的經驗熵

(2)遞迴地從樹的葉結點向上回縮

         如果回縮後的損失函式值更小,則將父結點變成新的葉結點。

(3)返回(2),直至不能繼續為止,得到損失函式最小的子樹。

6.CART演算法

1)CART既可以用於分類也可以用於迴歸。

2)CART決策樹時二叉樹,內部結點特徵的取值為“是”和“否”,左分支取值“是”,右分支取值“否”。等價於地跪地二分每個特徵,在輸入給定條件下輸出的條件概率分佈。

3)CART組成

(1)決策樹生成:基於訓練資料生成決策樹,生成的決策樹要儘量打。

(2)決策樹剪枝:用驗證集資料集對已生成的樹進行剪枝並選擇最優子樹,使用損失函式最小作為剪枝標準。

4)決策樹的生成就是遞迴地構建二叉決策樹的過程,對迴歸樹用平方誤差最小化準則,對分類樹用基尼指數(Gini index)最小化準則,進行選擇特徵。

5)輸入連續值變數時,按>split point和<=split point生成兩個分支。

劃分點split point的取值:把輸入值從小到大排序,每兩不同取值的平均值作為切分點。

6)最小二乘法迴歸樹生成演算法

(1)選擇最優切分變數j與切分點s,求解損失函式

  • 選擇損失最小值的變數j以及對應的切分點s作為最優特徵
  • cm為結點單元Rm上所有值的平均值

(2)用選定的(j,s)劃分區域並計算輸出值

  • 劃分條件:
  • 輸出值(cm最優值):

(3)繼續對兩個子區域呼叫步驟(1)和(2),直至滿足停止條件

(4)生成決策樹模型(x屬於那個區域,則使用該區域的平均值作為輸出)

7)分類樹用基尼指數選擇最優特徵,同時決定該特徵的最優二值切分點。

8)基尼指數

(1)概率分佈的基尼指數

(2)對於二分類問題,Ck是D中屬於第k類的樣本子集。

(3)特徵A的條件下,集合D的基尼指數

(4)Gini(D)表示集合D的不確定性,Gini(D, A)表示經A=a分割後集合的不確定性。基尼指數越大,樣本集合的不確定性就越大,這一點與熵相同。

9)例子

 

 

      

       由於Gini(D,年齡=青年)和Gini(D,年齡=老年)都是最小值,都可以作為切分點,所以年齡特徵的最優切分點的Gini指數為0.44。

       同理求出

       Gini(D,有工作)=是=0.32

       Gini(D,有自己房子)=是=0.27

       Gini(D,信貸情況=非常好)=0.36Gini(D,信貸情況=好)=0.47Gini(D,信貸情況=一般)=0.32

       由上可得,GiniD,有自己房子=是=0.27值最小,選擇該特徵該切分點作為最優特徵。

10)CART剪枝

(1)剪枝方法

a. 從生成演算法產生的決策樹T0底端開始不斷剪枝,直到T0根結點,形成一個子樹序列{T0,T1,…,Tn}

b. 通過交叉驗證演算法在獨立的驗證集上對子樹序列進行測試,從中選擇最優子樹。

(2)損失函式:

  • CT為對訓練資料的預測誤差,迴歸樹為平方誤差,分類樹為基尼指數

11)剪枝步驟

(1)設

(2)自下而上地對各內部結點t計算

  • :平方誤差/基尼指數
  • :結點t以下子樹的結點數量
  • 剪枝後整體損失函式減少的程度:
  • α=min⁡(α,g(t))

(3)對g(t)=α的內部結點t進行剪枝,並對葉結點t以多數表決決定其類,得到樹T。

(4)設(得到新的子樹)

(5)如果Tk不是由根結點以及兩個葉結點構成的樹,則回到步驟(3);否則Tk=Tn

(6)採用交叉驗證法在子樹序列中選擇最優子樹Tα。