第五章-一起看決策樹如何做出決策?

在前面我們學習了KNN是一種基本的分類和迴歸方法。今天我們繼續來學習另一個也能進行分類和迴歸的方法——決策樹(Decision Tree)。那麼對此,決策樹到底是如何做出決策的呢?請接下來往下看——

思維導圖(內容概覽)

衡量標準

對於一個統計學習方法,我們需要從模型+決策+算法逐步入手。但是在認識模型之前,特徵的選取又是顯得特別重要,在決策樹法中,存在一些比較重要的概念,即選取特徵的標準

  • 評估離散程度常用的有方差、熵、基尼指數

    • 方差:適用於連續隨機變量,數值有實際意義。
    • :適用於離散隨機變量,數值沒有實際意義。
    • 基尼指數:適用於離散隨機變量,數值沒有實際意義。
  • :用於表示隨機變量的不確定(混亂)程度,記作
    H(X)=i=1npilogpi H(X) = -\sum_{i=1}^n p_i \log p_i

  • 條件熵:在一直隨機變量X的條件下,隨機變量Y的不確定性(混亂程度)記作
    H(YX)=i=1npiH(YX=xi) H(Y|X) = \sum_{i=1}^np_iH(Y|X=x_i)

  • 信息增益:在得知特徵X的信息而使得類Y的信息的不確定性減少程度,記作
    g(D,A)=H(D)H(DA) g(D, A) = H(D) - H(D|A)

  • 信息增益比

    • 信息增益的缺陷:偏向於選擇取值較多的特徵。

    • 概念:對於A特徵的信息增益比,就是信息增益與訓練數據集關於特徵A的熵之比,記作
      gr(D,A)=g(D,A)HA(D) g_r(D, A) = \frac{g(D, A)}{H_A(D)}

  • 基尼指數(K爲類別數量,Pk爲屬於k類的概率)定義爲:
    Gini(p)=k=1Kpk(1pk)=1k=1Kpk2 Gini(p) = \sum_{k=1}^Kp_k(1-p_k) = 1 - \sum_{k=1}^Kp^2_k

  • 在特徵A的條件下,集合D的基尼指數定義爲

Gini(D,A)=D1DGini(D1)+D2DGini(D2) Gini(D, A) = \frac{|D_1|}{D}Gini(D_1) + \frac{D_2}{D}Gini(D_2)

決策樹模型

定義:分類決策樹模型是一種描述對實例進行分類的樹形結構。決策樹由節點和有向邊組成,結點有兩種類型:內部結點和葉結點。內部結點表示一個特徵或屬性,葉結點表示一個類。用決策樹分類,從根結點開始,對實例的某一個特徵進行測試,根據測試結果,將實例分配到其子結點;這時,每一個子結點對應着該特徵的一個取值。如此遞歸下去,直至到達葉結點。最後將所有實例進行分類

決策樹模型示意圖:

損失函數和剪枝(Pruning)策略

在決策模型中,會存在一個很重要的步驟,那就是剪枝,剪枝能決定最後的決策樹的樣子。

當遇到一系列的連續值,這是該怎麼辦?此時需要將連續值進行離散化,也即是需要選取連續值的分界點

  • 剪枝的原因:決策樹的過擬合風險過大時,每個葉子節點就分成了一個數據,結果不太如意。
  • 剪枝策略:預剪枝,後剪枝。
    • 預剪枝:邊建立決策樹邊進行剪枝的操作(更加實用),比如在選擇若干個特徵進行先構造決策樹。限制深度,葉子節點個數、葉子樣本點數、信息增益量等;
    • 後剪枝:邊建立完決策樹後進行剪枝操作。通過一定的衡量標準,葉子節點越多,損失越大。

DT模型是以極小化決策樹的整體損失函數或代價函數,可定義如下:
Cα(T)=C(T)+αT(leaf) C_\alpha(T) = C(T) + \alpha * |T_(leaf)|

  • 前半部分表示對訓練數據的擬合程度。
  • 後半部分表現模型複雜程度。
  • 用於對樹規模的懲罰程度,取值爲0是表示只考慮模型與訓練數據的擬合程度,不考慮模型複雜度,取值正無窮時則剛好相反。

決策樹的生成算法

  • 如何切分特徵

    • 根節點的選擇應該用哪一個特徵?該如何切分?
    • 根節點的目標是通過一種衡量標準,來計算通過不同特徵進行分支選擇後的分類的情況,找出最好的那個作爲根節點,以此類推。
  • 類別:每一種算法不同,衡量標準也不相同。

    • **ID3算法:信息增益 **

    • C4.5:信息增益率(解決了ID3的問題,考慮自身的熵)

    • CART:使用GINI係數作爲衡量標準

    • GINI係數
      Gini(p)=k=1kpk(1pk)=1k=1Kpk2 G_{ini}(p) = \sum_{k=1}^k{p_k(1-p_k)} = 1-\sum_{k=1}^Kp_k^2

ID3算法

ID3算法的核心是在決策樹各個節點上運用信息增益準則選擇特徵,遞歸構建決策樹

算法描述:
DAε;T.(1)DCK,TCKT(2)A=ϕ,TDCKT.(3)ADAg;(4)Agε,TDT(5)Agai,Ag=aiDDi,DiTT;(6)iDiA{Ag}調(1) (5),Ti,T 輸入:訓練數據集D,特徵集A,閾值\varepsilon;\\ 輸出:決策樹T.\\ (1) 若D中所有實例屬於同一個類C_K,則T爲單節點樹,並將C_K作爲該節點的類標記,返回T;\\ (2) 若A=\phi,則T爲單節點樹,並將D中實例數最大的類C_K作爲該節點的類標記,返回T.\\ (3) 否則,計算A中特徵對D的信息增益,選擇信息增益最大的特徵A_g;\\ (4) 如果A_g的信息增益小於閾值\varepsilon,則置T爲單節點樹,並將D中實例中最大的類作爲該節點的類標記,返回T;\\ (5) 否則,對A_g每一個可能值a_i,依A_g=a_i將D分割爲若干個非空子集D_i,將D_i中實例數最大的類爲該節點的標記,\\構建子節點,由結點以及子節點構成樹T,返回T;\\ (6) 對第i個子節點,以D_i爲訓練集,以A-\{A_g\}爲特徵集,遞歸地調用(1)~(5),得到子樹T_i,返回T。

C4.5算法

C4.5算法和ID3算法相似,並對ID3算法做了改進。其核心是採用信息增益比來選取特徵。
DAε;T.(1)DCK,TCKT(2)A=ϕ,TDCKT.(3)ADAg;(4)Agε,TDT(5)Agai,Ag=aiDDi,DiTT;(6)iDiA{Ag}調(1) (5),Ti,T 輸入:訓練數據集D,特徵集A,閾值\varepsilon;\\ 輸出:決策樹T.\\ (1) 若D中所有實例屬於同一個類C_K,則T爲單節點樹,並將C_K作爲該節點的類標記,返回T;\\ (2) 若A=\phi,則T爲單節點樹,並將D中實例數最大的類C_K作爲該節點的類標記,返回T.\\ (3) 否則,計算A中特徵對D的信息增益比,選擇信息增益比最大的特徵A_g;\\ (4) 如果A_g的信息增益小於閾值\varepsilon,則置T爲單節點樹,並將D中實例中最大的類作爲該節點的類標記,返回T;\\ (5) 否則,對A_g每一個可能值a_i,依A_g=a_i將D分割爲若干個非空子集D_i,將D_i中實例數最大的類爲該節點的標記,\\構建子節點,由結點以及子節點構成樹T,返回T;\\ (6) 對第i個子節點,以D_i爲訓練集,以A-\{A_g\}爲特徵集,遞歸地調用(1)~(5),得到子樹T_i,返回T。

CART算法

CART算法包含兩步:決策樹生成和決策樹剪枝

CART生成

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

  1. 迴歸樹的生成

    通常使用最小二乘迴歸樹生成算法進行生成迴歸樹。
    D;f(x).(1)jsminj,s[mincjxjR1(j,s)(yici)2+mincjxjR2(j,s)(yici)2]jjs(j,s);(2)(j,s):R1(j,s)={xs(j)s},R2(j,s)={xs(j)>s}cm^=1Nmyi,xRm,m=1,2(3)調(1),(2),滿(4)MR1,R2,R3...RM,f(x)=m=1Mcm^I(xRm) 輸入:訓練數據集D;\\ 輸出:迴歸樹f(x).\\ 在訓練集所在的輸入空間中,遞歸地將每個區域劃分爲兩個子區域並決定每個子區域上的輸出值,構建決策樹:\\ (1) 選擇最優的切分變量j與切分點s,求解 \\ min_{j,s}[min_{c_j}\sum_{x_j\in R_1(j,s)}(y_i-c_i)^2+min_{c_j}\sum_{x_j\in R_2(j,s)}(y_i-c_i)^2],遍歷j,對j的切分點s,選擇最小的(j,s);\\ (2) 用選定的對(j,s)劃分區域並決定相應的輸出值:\\ R_1(j,s)=\{x|s(j) \leq s\},R_2(j,s)=\{x|s(j) > s\} \hat{c_m}=\frac{1}{N_m}\sum{y_i},x\in R_m,m=1,2 \\ (3) 繼續對兩個子區域調用步驟(1),(2),直至滿足條件;\\ (4)將輸入空間劃分成M個區域R_1,R_2,R_3...R_M,生成決策樹。\\ f(x)=\sum^M_{m=1}\hat{c_m}I(x\in R_m)

  2. 分類樹的生成

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

    CART生成算法描述:
    D,;CART.(1)DAaA=a""""DD1D2,A=a(2)Aa(3)調(1),(2)滿(4)CART 輸入:訓練數據集D,停止計算的條件;\\ 輸出:CART決策樹.\\ 根據訓練數據集,從根結點開始,遞歸地對每一個結點進行如下操作,構建決策樹:\\ (1)設結點地訓練集爲D,計算現有特徵對該數據集的基尼指數。此時,對每一個特徵A,對可能取得每一個值a,\\ 根據樣本點對A=a得測試爲"是"或"否"將D分割成D_1和D_2,計算A=a得基尼指數。\\ (2)在所有可能得特徵A和可能得切分點a中,選擇最小的基尼指數得特徵以及對應的切分點。\\ 由此,從現結點生成兩個子結點,將訓練集依特徵分配到兩個子結點中去。\\ (3)對兩個子節點遞歸調用(1),(2),直至滿足條件;\\ (4) 生成CART決策樹。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章