1. 程式人生 > >【統計學習方法-李航-筆記總結】五、決策樹

【統計學習方法-李航-筆記總結】五、決策樹

本文是李航老師《統計學習方法》第五章的筆記,歡迎大佬巨佬們交流。

主要參考部落格:

https://blog.csdn.net/u014248127/article/details/78971875

https://www.cnblogs.com/YongSun/p/4767085.html

主要內容包括:

1. 決策樹模型與學習

2. 特徵選擇

3. 決策樹的生成

4. 決策樹的剪枝

5. CART演算法

 

    決策樹(decision tree)是一種基本的分類迴歸方法。本章主要討論用於分類的決策樹。決策樹模型呈樹形結構,在分類問題中,表示基於特徵對例項進行分類的過程。它可以認為是if-then規則

的集合,也可以認為是定義在特徵空間與類空間上的條件概率分佈

    其主要優點是:模型具有可讀性,分類速度快。學習時,利用訓練資料,根據損失函式最小化的原則建立決策樹模型。預測時,對新的資料,利用決策樹模型進行分類。

1. 決策樹模型與學習

(1)決策樹的認識: 這本書中提出的機器學習的三要素:模型、策略、演算法。
  模型: 分類決策樹模型是一種描述對例項進行分類的樹形結構。決策樹由結點(node)和有向邊(directed edge)組成。結點有兩種型別:內部結點(internal node )和葉結點(leaf node)。內部結點表示一個特徵或屬性,葉結點表示一個類

。(簡單說就是用我們熟悉的樹結構去做分類,從根結點出發,對某一特徵測試,將例項分到相應的子結點,指導所選的特徵都測試完,到達葉結點的類中)如下圖所示:其中圓代表內部節點(特徵),方框代表葉結點(類)。

 

  策略:決策樹的學習本質上是從訓練集資料中歸納出一組分類規則,這個規則不僅對訓練資料有很好的描述,而且對未知資料有很好的預測 。學習決策樹的策略,也就是決策樹的損失函式在原文決策樹剪枝部分介紹。簡單理解就是:決策樹的損失函式是正則化的極大似然函式,也就是模型對資料的擬合程度與模型複雜度(葉子的個數)的和。決策樹的學習策略是以損失函式為目標函式的最小化。

  演算法: 決策樹的學習演算法分為三步:首先遞迴的選擇特徵、用選擇的特徵構造一個決策樹、解決過擬合進行決策樹剪枝。

(2)if-then規則與條件概率分佈

  if-then規則:可以將決策樹看成一個if-then規則的集合,轉換成if-then規則的過程:由決策樹的根結點到葉結點的每一條路徑構建一條規則;路徑上內部結點的特徵對應著規則的條件,而葉結點的類對應著規則的結論。決策樹的路徑或其對應的if-then規則集合具有一個重要的性質:互斥並且完備,每一個例項都被一條路徑或一條規則所覆蓋,而且只被一條路徑或一條規則所覆蓋。這裡所謂覆蓋是指例項的特徵與路徑上的特徵一致或例項滿足規則的條件。

  條件概率分佈:決策樹還表示給定特徵條件下類的條件概率分佈。這一條件概率分佈定義在特徵空間的一個劃分(partition)上,將特徵空間劃分為互不相交的單元(cell)或區域(region),並在每個單元定義一個類的概率分佈就構成了一個條件概率分佈。決策樹的一條路徑對應於劃分中的一個單元。決策樹所表示的條件概率分佈由各個單元給定條件下類的條件概率分佈組成。條件概率分佈可以表示為P(Y|X),X取值於給定劃分下單元的集合,Y取值於類的集合。各葉結點(單元)上的條件概率往往偏向某一個類,即屬於某一類的概率較大。決策樹分類時將該結點的例項強行分到條件概率大的那一類去。決策樹與特徵空間與條件概率分佈的對應關係如下圖所示:

    其中,(b)圖的x(1)-x(2)平面(底面)可以看做是(a)圖順時針旋轉90度得到的,所以條件概率可以對應於(a)圖的特徵空間劃分,並且看作是(a)圖在空間上的延伸。

2. 特徵選擇

特徵選擇問題:特徵選擇在於選取對訓練資料具有分類能力的特徵。通常特徵選擇的準則是資訊增益資訊增益比

(1)資訊增益:

    資訊熵H(x):代表的是隨機變數不確定的度量,熵是平均資訊量,熵越大,不確定性越大,資訊量就越大。

    X是一個取有限個離散值的隨機變數,其概率分佈為:

    則隨機變數X的熵的定義為:

    由上式知,熵只依賴於X的分佈,與X的取值無關,也可記作H(p),即:

    例子如下:

    設隨機變數(X,Y),其聯合概率分佈為:

    條件熵H(Y|X):表示在已知隨機變數X的條件下隨機變數Y的不確定性。隨機變數X給定的條件下隨機變數Y的條件熵(conditional entropy) H(Y|X),定義為X給定條件下Y的條件概率分佈的熵對X的數學期望:

    當熵和條件熵中的概率由資料估計(特別是極大似然估計)得到時,所對應的熵與條件熵分別稱為經驗熵( empirical entropy)和經驗條件熵(empirical conditional entropy )。

    資訊增益:表示得知特徵X的資訊而使得類Y的資訊的不確定性減少的程度。定義為:特徵A對訓練資料集D的資訊增益g(D,A),定義為集合D的經驗熵H(D)與特徵A給定條件下D的經驗條件熵H(D|A)之差,即:

    一般地,熵H(Y)與條件熵H(Y|X)之差稱為互資訊決策樹學習中的資訊增益等價於訓練資料集中類與特徵的互資訊

    對資訊增益公式的理解:對於給定資料集D和特徵A,經驗熵H(D)表示對資料集D分類的不確定性,條件經驗熵H(D|A)表示在特徵A的條件下對資料集D進行分類的不確定性,那麼它們的差,即資訊增益,表示由於特徵A是的資料集D的分類的不確定性減少的程度。顯然,對於資料集D,資訊增益依賴於特徵,不同特徵往往具有不同的資訊增益,資訊增益大的特徵分類能力強

    根據資訊增益準則的特徵選擇方法是:對訓練資料集(或子集)D,計算其每個特徵的資訊增益,並比較它們的大小,選擇資訊增益最大的特徵。資訊增益的演算法如下:

 

其中,|D|表示其樣本容量,即樣本個數。設有K個類Ck,k=1,2,...,K,|Ck|為屬於類Ck的樣本個數。根據特徵A的取值將D劃分為n個子集D1,D2,...,Dn,|Di|為Di的樣本個數。記子集Di中屬於類Ck的樣本的集合為Dik。

(2)資訊增益比

     資訊增益值的大小是相對訓練資料而言的,並沒有絕對意義,在分類問題困難時,也就是在訓練集資料集的經驗熵大的時候,資訊增益值會偏大,反而會偏小,因此用資訊增益比校正這一問題。

    資訊增益比:特徵A對訓練資料集D的資訊增益比gR(D,A)定義為其資訊增益g(D,A)與訓練資料集D的經驗H(D)之比:

3. 決策樹的生成

(1)ID3演算法

    ID3演算法的核心是在決策樹各個結點上應用資訊增益準則選擇特徵,遞迴地構建決策樹,具體方法是:從根結點開始,對結點計算所有可能的特徵的資訊增益,選擇資訊增益最大的特徵作為結點的特徵,由該特徵的不同取值建立子結點,對子結點遞迴呼叫上述方法,構建決策樹,直到所有特徵的資訊增益都很小或者沒有特徵選擇為止。ID3相當於用極大似然法進行概率模型的選擇。演算法流程如下:

ID3演算法只有樹的生成,因此很容易產生過擬合。

(2)C4.5的生成演算法

    C4.5與ID3演算法相似,不同是用資訊增益比來選擇特徵。演算法流程如下:

4. 決策樹的剪枝

    決策樹的生成演算法容易構建過於複雜的決策樹,產生過擬合。、

    剪枝:在決策樹學習中將已生成的樹進行簡化的過程稱為剪枝(pruning)。具體地,剪枝從已生成的樹上裁掉一些子樹或葉結點,並將其根結點或父結點作為新的葉結點,從而簡化分類樹模型.

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

    設樹T的葉結點個數為|T|, t是樹T的葉結點,該葉結點有Nt個樣本點,其中k類的樣本點有Ntk個,k=1,2,...,K,Ht(T)為葉結點t上的經驗熵,a>=0為引數,則決策樹學習的損失函式可以定義為:

    其中,經驗熵為,在損失函式中,將第一項記作:,則有:,式中,C(T)表示模型對訓練資料的預測誤差,即模型與訓練資料的擬合程度,|T|表示模型複雜度,引數α控制兩者之間的影響,大點促使選擇簡單的模型,小點促使選擇複雜的模型。

    剪枝,就是當α確定時,選擇損失函式最小的模型,即損失函式最小的子樹。損失函式正好表示了對模型的複雜度和訓練資料的擬合兩者的平衡。

    決策樹生成只考慮了通過提高資訊增益(或資訊增益比)對訓練資料進行更好的擬合,學習區域性的模型;

    決策樹剪枝通過優化損失函式還考慮了減小模型複雜度,學習整體的模型。

    利用損失函式最小原則進行剪枝就是用正則化的極大似然估計進行模型選擇。

    剪枝演算法流程如下:

5. CART演算法

分類與迴歸樹(classification and regression tree, CART)模型同樣由特徵選擇、樹的生成及剪枝組成,既可以用於分類也可以用於迴歸。  CART演算法由以下兩步組成:

    (1)決策樹生成:基於訓練資料集生成決策樹,牛成的決策樹要儘量大;

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

5.1 CART生成

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

(1)迴歸樹的生成:它每次選擇的是一個空間劃分(j,s),j代表第j個特徵,s是這個特徵取的值,然後根據選擇劃分構建樹。

(2)分類樹的生成

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

    基尼指數:分類問題中,假設有K個類,樣本點屬於第k類的概率為pk,則概率分佈的基尼指數定義為:

    對於二分類問題,若樣本點屬於第一個類的概率為p,則基尼指數為:

    對於給定的樣本集合D,其基尼指數為:,Ck是D中屬於第k類的樣本子集,K是類個數。

    如果樣本集合D根據特徵A是否取某一可能值a被分割成D1和D2兩部分,則在特徵A的條件下,集合D的基尼指數定義為:

    基尼指數Gini(D)表示集合D的不確定性,Gini(D,A)表示經A = a分割後集合D的不確定性,基尼指數越大,樣本的不確定性越大,因此想要分割後不確定性儘量小,基尼係數也得儘量小,也就是說基尼係數小的特徵更適合劃分樣本。

    下圖顯示二分類中,Gini、熵之半(1/2H(p))和分類誤差率的關係,可以看出基尼係數和熵之半的曲線很接近,都可以近似分類誤差率:

    CART生成演算法流程如下:

5.2 CART剪枝

    CART剪枝演算法由兩步組成:首先從生成演算法產生的決策樹T0底端開始不斷剪枝,直到T0的根結點,形成一個子樹序列代{T0,T1,...,Tn};然後通過交叉驗證法在獨立的驗證資料集上對子樹序列進行測試,從中選擇最優子樹。

(1) 剪枝,形成一個子樹序列

    在剪枝過程中,計運算元樹的損失函式:

    可以用遞迴的方法對樹進行剪枝,將a從小增大,a0<a1<...<an<+無窮,產生一系列的區間[ai,ai+1),i =0,1,...,n;剪枝得到的子樹序列對應著區間[ai,ai+1),i =0,1,...,n的最優子樹序列{T0, T1, ... , Tn},序列中的子樹是巢狀的。

    對T0中每一內部結點t,計算:

    表示剪枝後整體損失函式減少的程度,在T0中剪去g(t)最小的Tt,將得到的子樹作為T1,同時將最小的g(t)設為a1,T1為區間[a1,a2)的最優子樹。如此剪枝下去,直至得到根結點。在這一過程中,不斷地增加a的值,產生新的區間。

(2) 在剪枝得到的子樹序列T0, T1, ... , Tn中通過交叉驗證選取最優子樹Ta

    具體地,利用獨立的驗證資料集,測試子樹序列T0, T1, ... , Tn中各棵子樹的平方誤差或基尼指數。平方誤差或基尼指數最小的決策樹被認為是最優的決策樹。在子樹序列中,每棵子樹T0, T1, ... , Tn都對應於一個引數a0, a1, ... , an。所以,當最優子樹Tk確定時,對應的ak也確定了,即得到最優決策樹Ta

    演算法流程如下:

關於熵、條件熵、資訊增益、資訊增益比、基尼係數的專題對比可見部落格:

https://blog.csdn.net/bitcarmanlee/article/details/51488204