決策樹(一)--特徵值選擇
決策樹是一種基本的分類和迴歸方法。用決策樹分類,從根節點開始,對例項的某一特徵進行測試,根據測試的結果,將例項分配到其子結點;這時,每一個子結點對應著該特徵的一個取值,遞迴地對例項進行測試和分配,直至達到葉節點,最後將例項分到葉節點的類中。
決策樹學習通常包括3個步驟:特徵選擇,決策樹的生成和決策樹的剪枝。
特徵值選擇
當訓練元組緯度比較大時,我們在對其進行分類的時候,要考慮選擇哪一個特徵值進行分裂得到的分類結果才是最好的。
屬性選擇度量是一種選擇分裂準則,把給定類標記的訓練元組的資料區D“最好地”劃分為單獨類的啟發方式。這裡介紹三種常用的屬性選擇度量-資訊增益,增益率,基尼指數
1:資訊增益(ID3)
為了便於說明,先給出熵和條件熵的定義
在資訊理論與概率統計中,熵是表示隨機變數不確定性的度量,X是一個取有限個值的離散隨機變數,其概率分佈為,則隨機變數X的熵為
由公式可以得知,熵只依賴於X的分佈,而與X的取值無關,並且熵越大,隨機變數的不確定性就越大!!!
假設有隨機變數(X,Y),其聯合概率分佈為: ,條件熵表示在已知隨機變數X的條件下,Y的不確定性。隨機變數X給定條件下隨機變數Y的條件熵定義為X給定條件下Y的條件概率分佈的熵對X的數學期望
資訊增益定義:
特徵A對訓練集D的資訊增益g(D,A),定義為集合D的熵H(D)與特徵A給定條件下D的條件熵H(D|A)的差,即:
,資訊增益表示得到特徵X的資訊而使得類Y的資訊不確定性減少的程度。
其中|D|表示其樣本容量,K表示類的個數,|Ck|表示的屬於類Ck的個數,設特徵A有n個不同的取值,根據特徵A的取值將D劃分為n個子集Di,|Di|為Di的樣本個數,記子集Di中屬於類Ck的樣本集合為Cik。
2:增益率(C4.5)
資訊增益比:特徵A對訓練數集D的資訊增益比定義為其資訊增益與訓練資料集D關於特徵值A的值的熵之比,即
,其中
3:基尼指數(CART)
基尼指數度量資料區或訓練集D的不純度,定義為:,基尼指數值越小,資料集的純度越高。
屬性A的基尼指數定義為:
接下來,我們來算一下這三種度量方式
1:資訊增益
標號buys_conputer有兩個不同的值,因此有兩個類。類yes中有9個元組,類no中有5個元組。
下一步需要計算每個屬性的期望資訊需求。從age開始。需要對age中的每個類考察age和no的分佈。
對於age類的"youth",有2個yes元組和3個no元組
對於age類的"middle_aged",有4個yes元組和0個no元組
對於age類的"senior",有3個yes元組,2個no元組。
因此,這種劃分的資訊增益為:
類似的,對於income:
對於student:
對於credit_rating:
由於age在屬性中具有最高的資訊增益,所以它被選做分裂屬性
2:資訊增益率
屬性income將資料劃分為3個分割槽,low,medium,high,分別包含4,6,4個元組。
,因此
3:基尼指數
表中9個元組是屬於類buy_computer=yes,而其餘的5個元組屬於類buy_computer=no。首先使用基尼指數計算D的不純度
針對屬性income,並考慮每個可能的分裂子集,考慮子集{low,medium},這將導致10個滿足條件income在{low,medium}的元組在分割槽D1中,其中四個在D2中,D2為income屬於{high}
類似的,用其餘子集劃分的基尼指數為:0.458 {low,high} 0.450 {medium,high},因此,屬性income的最好二元劃分在{low,medium}上,因為他有最小的基尼指數
演算法 | 支援模型 | 樹結構 | 特徵選擇 | 連續值處理 | 缺失值處理 | 剪枝 |
ID3 | 分類 | 多叉樹 | 資訊增益 | 不支援 | 不支援 | 不支援 |
C4.5 | 分類 | 多叉樹 | 增益率 | 支援 | 支援 | 支援 |
CART | 分類,迴歸 | 二叉樹 | 基尼指數 | 支援 | 支援 | 支援 |