1. 程式人生 > >統計學習方法 李航---第5章 決策樹

統計學習方法 李航---第5章 決策樹

第5章 決策樹

決策樹(decision tree)是一種基本的分類與迴歸方法。本章主要討論用於分類的決策樹。決策樹模型呈樹形結構,在分類問題中,表示基於特徵對例項進行分類的過程。它可以認為是if-then規則的集合,也可以認為是定義在特徵空間與類空間上的條件概率分佈。其主要優點是模型具有可讀性,分類速度快。學習時,利用訓練資料,根據損失函式最小化的原則建立決策樹模型。預測時,對新的資料,利用決策樹模型進行分類。決策樹學習通常包括3個步驟:特徵選擇、決策樹的生成和決策樹的修剪。

5.1 決策樹模型與學習

定義5.1 (決策樹) :分類決策樹模型是一種描述對例項進行分類的樹形結構。決策樹由結點(node)和有向邊(directed edge)組成。結點有兩種型別:內部結點(internal node )和葉結點(leaf node)。內部結點表示一個特徵或屬性,葉結點表示一個類。

用決策樹分類,從根結點開始,對例項的某一特徵進行測試,根據測試結果,將例項分配到其子結點;這時,每一個子結點對應著該特徵的一個取值。如此遞迴地對例項進行測試並分配,直至達到葉結點。最後將例項分到葉結點的類中。

圖中圓和方框分別表示內部結點和葉結點.

6d0f073f-1931-4eda-817d-576c2727c808

決策樹與if-then規則

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

決策樹與條件概率分佈

決策樹還表示給定特徵條件下類的條件概率分佈。這一條件概率分佈定義在特徵空間的一個劃分(partition)上,將特徵空間劃分為互不相交的單元(cell)或區域(region),並在每個單元定義一個類的概率分佈就構成了一個條件概率分佈。

決策樹的一條路徑對應於劃分中的一個單元。決策樹所表示的條件概率分佈由各個單元給定條件下類的條件概率分佈組成。條件概率分佈可以表示為P(Y|X),X取值於給定劃分下單元的集合,Y取值於類的集合。各葉結點(單元)上的條件概率往往偏向某一個類,即屬於某一類的概率較大。決策樹分類時將該結點的例項強行分到條件概率大的那一類去。

24eb8345-4b9c-4458-9ab2-049a30e68009

決策樹學習

決策樹學習本質上是從訓練資料集中歸納出一組分類規則。可能有多個,可能沒有。我們需要的是一個與訓練資料矛盾較小的決策樹,同時具有很好的泛化能力。

從另一個角度看,決策樹學習是由訓練資料集估計條件概率模型。基於特徵空間劃分的類的條件概率模型有無窮多個。我們選擇的條件概率模型應該不僅對訓練資料有很好的擬合,而且對未知資料有很好的預測。

決策樹學習的損失函式:通常是正則化的極大似然函式

決策樹學習的策略:是以損失函式為目標函式的最小化

因為從所有可能的決策樹中選取最優決策樹是NP完全問題,所以現實中決策樹學習演算法通常採用啟發式方法,近似求解這一最優化問題,得到的決策樹是次最優(sub-optimal)的。

決策樹學習的演算法通常是一個遞迴地選擇最優特徵,並根據該特徵對訓練資料進行分割,使得對各個子資料集有一個最好的分類的過程。

剪枝:決策樹可能對訓練資料有很好的分類能力,但可能發生過擬合現象.。所以需要對已生成的樹自下而上進行剪枝,將樹變得更簡單,從而使它具有更好的泛化能力。具體地,就是去掉過於細分的葉結點,使其回退到父結點,甚至更高的結點,然後將父結點或更高的結點改為新的葉結點.

特徵選擇:如果特徵數量很多,在決策樹學習開始時對特徵進行選擇,只留下對訓練資料有足夠分類能力的特徵。

由於決策樹表示一個條件概率分佈,所以深淺不同的決策樹對應著不同複雜度的概率模型。決策樹的生成對應模型的區域性選擇,決策樹的剪枝對應於模型的全域性選擇。決策樹的生成只考慮區域性最優,決策樹的剪枝則考慮全域性最優。

5.2 特徵選擇

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

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

388db78d-cf80-4168-8c10-2ee906406585

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

2b3bf629-53c2-483e-9918-ab6bae5e2d5481a0e7bd-2e4e-407e-8669-eaf237a73475

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

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

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

5deb664f-c5e6-4ddb-bb95-50d2ba1bbf8c

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

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

3b9f3190-7b4b-46ee-9a57-8e4a52967ec9

48bd1836-9c3c-45c1-a1a9-47eb2abde99a

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

資訊增益值的大小是相對於訓練資料集而言的,並沒有絕對意義。在分類問題困難時,也就是說在訓練資料集的經驗嫡大的時候,資訊增益值會偏大,反之,資訊增益值會偏小。

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

13510f77-2f2b-4cf1-ae39-0f7a4f5e3fe8

5.3 決策樹的生成

ID3演算法: ID3演算法的核心是在決策樹各個結點上應用資訊增益準則選擇特徵。

a190b189-d8bf-400e-ab82-cb553052b86d

865248f4-913b-4179-9461-1a932a01d710

ID3演算法只有樹的生成,所以該演算法生成的樹容易產生過擬合

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

10900fa5-d2e5-4238-92ef-dd5a04e6f207

5.4 決策樹的剪枝

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

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

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

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

349f0c63-7f26-4d43-945b-33bb6a0d5ae9c74a99b9-7d58-4677-8f5e-e28dd536f98c

03cece99-916b-461c-85bd-802f84ffe458531a59b1-f349-4346-a02a-8cafbfa489cc

C(T)表示模型對訓練資料的預測誤差,即模型與訓練資料的擬合程度,|T|表示平莫型複雜度,引數a>=0控制兩者之間的影響。剪枝,就是當a確定時,選擇損失函式最小的模型,即損失函式最小的子樹。損失函式正好表示了對模型的複雜度和訓練資料的擬合兩者的平衡。

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

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

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

78f52de0-7395-4ed2-8d6c-32b1845d39f9       73d3f3ce-f1f5-4875-94c7-31bfe1a9243e

5.5  CART演算法

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

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

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

CART生成對迴歸樹用平方誤差最小化準則,對分類樹用基尼指數(Gini index)最小化準則,進行特徵選擇。

迴歸樹的生成:

8d7e0ee5-01dc-4c4d-a883-c1b6683be8a9

分類樹的生成

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

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

0dcf4c8f-b81a-4b52-b670-3bb9828a7161

對於給定的樣本集合D,其基尼指數為

ab69d6f0-8ed9-4b9f-98b0-912ed299011d

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

43b5b907-57cc-470e-87af-94c04a450bb26692363b-4c62-4f20-9ab0-3cf9c62885b6

9e356d3d-7556-4701-b95e-6468e78c2186

CART剪枝

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

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

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

f6d716fb-1b66-4eb1-bf10-5939209154a4

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

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

bd45a486-8bc8-444c-a0b9-62685d053ced

表示剪枝後整體損失函式減少的程度,在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。

b6aae34d-cc9c-49fa-b90c-9ea8a2e63dc1