1. 程式人生 > >統計學習方法--決策樹

統計學習方法--決策樹

概述

決策樹(Decision tree)一種常見的迴歸和分類的方法,決策樹易於理解,其符合人類的思維方式,便於解釋等特點。決策樹的學習過程通常分為3個步驟:特徵選擇、決策樹的生成、剪枝。
決策樹可以看出一個if-then規則的集合,下面給出一副圖進行對決策樹巨集觀的認識,這裡我們的任務是要將紅色的點和綠色的點進行分類:

這裡寫圖片描述

在平面上選擇最好的劃分點,即如何切分資料點效果最好,如下圖所示的,黑線左邊和右邊被分成兩類,左邊的為綠色,右邊為紅色,顯然這樣會有很大的誤差,因此需要更多的劃分點。

這裡寫圖片描述

經過一系列劃分後,得到如下的圖形,紅色和綠色被黑框進行分割。

這裡寫圖片描述

最後得到其劃分的流程圖如下所示:

這裡寫圖片描述

上面的一個很自然的問題是,如何找到最優的切分點,即我如何切這一刀使得其劃分的結果儘可能好,注意這裡的用詞,因為決策樹中選擇最優決策樹是NP完全問題,所以在現實中採用啟發式的方法,也就是我們選擇的是貪婪的演算法,沒次劃分的都是當前結果中最優的劃分。
如何選擇劃分點也就是決策樹的特徵選擇的步驟。

特徵選擇

不純性度量

特徵選擇,即從當前的特徵中選擇一個能將樣本劃分最好的特徵的演算法,通常選擇最佳劃分的度量是根據劃分後子女節點的不純性的純度。不純的程度越低,類的分別越傾斜。不純性的度量包括:

這裡寫圖片描述

上述分別為基尼指數、資訊熵和分類誤差,其中 pk為第k類的概率。
在二分類問題上三個不純度度量之間的比較,可以看到它們的度量是一直的在p=0.5

時不純度 最高,此時需要較多的資訊,而p=0,p=1時不純度為0,因為我不需要知道任何資訊即可將它們分開。即不存度越高,所需要的資訊就越多。

這裡寫圖片描述

在決策樹的構造中,最常用的三種演算法為:ID3,C4,5和CART演算法。

資訊增益

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

g(D,A)=H(D)H(D|A)

設訓練集D共有k個類別|D|表示訓練樣本的個數,|Ck|表示第k個類的個數,其中A共有n個屬性,經A劃分後可以將D劃分為:D1,D2,...Dn個子集每個最忌的個數為Di經驗熵為這些子集資訊熵的加權平均

,計算公式如下圖所示。

這裡寫圖片描述

資訊增益比

從上述可以看到如果一個特徵具有很多個屬性的話,因此在選擇特徵是,會偏向於選擇屬性較多的特徵,因為屬性較多,會分成更多的子集,解決這一問題可以用資訊增益比,這是特徵選擇的另一準則,資訊增益比為:

gR(D,A)=g(D,A)HA(D)
其中HA(D)=ni=1pilog(pi),其中pi為第i個子集的概率。

ID3,C4.5,CART的比較

下面給出三種決策樹構建演算法的簡單巨集觀的比較:

這裡寫圖片描述

下面分別對其進行介紹。

ID3演算法

ID3演算法,即選擇能使得資訊增益最大的特徵作為當前的劃分要本的特徵。然後遞迴的構建決策樹。具體方法為:
從根節點開始,對節點計算所有可能特徵的資訊增益,選擇資訊增益最大的節點作為劃分的特徵,有該特徵的不同取值建立子節點,在對子節點遞迴的挑用以上方法。直到左右的特徵的資訊增益均很小或者沒有特徵可以選擇了,最後得到一顆決策樹。
有關構造決策樹的具體程式碼可以參考:基於ID3演算法生成決策樹

C4.5演算法

與ID3演算法非常的類似,只不過用資訊增益比來代替ID3中的資訊增益而已。

CART演算法

分類與迴歸樹(classification and regression tree,CART)是一種廣泛的決策樹學習方法,其中它既可以做分類也可以做迴歸,同時CART與ID3和C4.5所不同的一點是他是個二叉樹,即每次劃分都是是與不是。

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

迴歸樹的生成

一個迴歸樹對應於將輸入空間D劃分為M個單元R1,R2,...Rm,並且在每個單元上的輸出值為在此單元上所有的資料的平均值,即如果測試的要本落在了Ri這個空間中,則其輸出的值為:

cm=ave(yi|xiRm)

主要的問題是我們如何進行空間的劃分,下面給出以最新二乘迴歸樹的生成演算法:

這裡寫圖片描述
來源:統計學習方法

分類樹的生成

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

Gini(p)=k=1kpk(1pk)

在CART的演算法中,生成的是二叉樹,因此k=2,所以基尼指數變為:

Gini(p)=2p(1p)

具體生成的演算法與ID3和C4.5類似,不再贅述。

決策樹的剪枝

在決策樹問題中,處理過擬合的方法為剪枝,其中剪枝分為先剪枝和後剪枝。

先剪枝

在這種方法中,在完全擬合整個訓練集之前就停止決策樹的生長。因此要採取一些提前結束的條件,比如說:當觀察到不純性度量的增益低於某個確定的閾值是就停止擴充套件葉子節點。這種方法有點在於避免產生過分擬合訓練資料的過於複雜的子樹,然而,很難為提前終止選取正取的閾值。閾值太高容易欠擬合,太低過擬合。

後剪枝

在此方法中,初始的決策樹按最大規模增長,然後對其進行剪枝,按照自第向上的方法進行對決策樹的修剪。
決策樹越複雜一般來說對訓練資料的擬合越好,其有更多的葉子節點,為了避免其過於複雜的模型,一般的做法都是給其一個懲罰。因此決策樹的剪枝往往通過極小化損失函式(loss function)來實現。
Loss function :

Cα=C(T)+α|T|
其中|T|為葉子節點的個數,C(T)表示模型對訓練樣本的預測誤差。因此當 α 確定後,如果在一顆子樹的損失反而小於其分裂後的損失,則讓父節點充當該子樹的葉子節點,即當:
Cα(Ta)<=Cα(Tb)
則將父節點作為葉子節點,關於更多可以參考相應的資料。

決策樹的優缺點

Good properties:
1.Inexpensive to construct
2.Variable selection
3.Interaction detection
4.Easy to interpret for small-sized trees
5.Missing data
6.Mixed variable types
7.Robustness; invariant to monotone transformations of input variables

Weak properties:
1. Instability
2. Difculty in modeling additive structures

參考資料:

1.Ji Zhu, Michigan Statistics
2.統計學習方法
3.機器學習
4.資料探勘導論
5.七月線上