決策樹是一種樹型結構,其中每個內部結點表示在乙個屬性上的測試,每個分支代表乙個測試輸出,每個葉結點代表一種類別。決策樹學習是以例項為基礎的歸納學習,採用的是自頂向下的遞迴方法,其基本思想是以資訊熵為度量構造一棵熵值下降最快的樹,到葉子結點處的熵值為零,此時每個葉節點中的例項都屬於同一類。決策樹學習演算法的最大優點是,它可以自學習。在學習的過程中,不需要使用者了解過多背景知識,只需要對訓練例項進行較好的標註,就能夠進行學習。
我們看乙個有趣的例子,下面是一位女士準備去相親時根據男方的條件選擇見或不見的決策樹示意圖:
從上圖可以看出該女士首先選擇年齡這個屬性作為分類依據,年齡大於30歲的直接不見,不超過30歲的再看相貌這個屬性,如果醜就不見,如果帥或中等的話再看收入…… 直到最終可以判定所有例項的類別。
建立決策樹的關鍵就是在當前狀態下選擇哪個屬性作為分類依據,因此要選擇適當的目標函式。目標函式可以選擇資訊增益、資訊增益率和基尼係數,分別對應id3、c4.5和cart這三種決策樹學習演算法。下面分別介紹:
id3演算法是以資訊增益作為其特徵選擇的目標函式的。當熵和條件熵中的概率由資料估計(特別是極大似然估計)得到時,所對應的熵和條件熵分別稱為經驗熵和經驗條件熵。特徵a對訓練資料d的資訊增益g(d,a)定義為:資料集d的經驗熵h(d)與特徵a給定條件下資料集d的經驗條件熵h(d|a)之差,即g(d,a) = h(d) - h(d|a)。資訊增益表示得知特徵a的資訊而使得資料集d的分類的不確定性減少的程度。
下面詳述資訊增益的計算方法:
設訓練資料集為d,|d|表示其樣本個數。設有k個類ck
,k=1,2,
3,..
.,k ,|c
k|為屬於類ck
的樣本個數,顯然有∑k
k=1|
ck|=
|d| 。設特徵a有
n 個不同的取值{a1
,a2,
a3,.
..,a
n},根據a的取值將資料集d劃分為
n 個子集d1
,d2,
d3,.
..,d
n,|d
i|表示子集di
的樣本個數,顯然也有∑n
i=1|
di|=
|d| 。子集di
中屬於類ck
的樣本的集合記為di
k ,|d
ik| 為di
k 的樣本的個數。
(1)計算資料集d的經驗熵: h
(d)=
−∑k=
1k|c
k||d
|log|c
k||d
| (2)計算特徵a對資料集d的經驗條件熵: h
(d|a
)=−∑
i=1n
∑k=1
kp(d
k,ai
)logp(
dk|a
i)=−
∑i=1
n∑k=
1kp(
ai)p
(dk|
ai)logp(
dk|a
i)=−
∑i=1
np(a
i)∑k
=1kp
(dk|
ai)logp(
dk|a
i)=−
∑i=1
n|di
||d|
∑k=1
k|di
k||d
i|log|di
k||d
i|(3)計算資訊增益: g
(d,a
)=h(
d)−h
(d|a
) 根據資訊增益的特徵選擇方法是對訓練資料集(或子集)d,計算每個特徵的資訊增益,選擇資訊增益最大的特徵做為當前狀態下的分類依據。
id3演算法的過程如下:
輸入:訓練資料集
d ,特徵集
a,閾值
ϵ
輸出:決策樹
t
① 若d
中所有例項屬於同一類ck
,則t 為單結點樹,並將類ck
作為該結點的類標記,返回
t ;
② 若a
為空,則
t 為單結點樹,並將
d中例項數最大的類ck
作為該結點的類標記,返回
t ;
③ 否則,計算各特徵a1
,a2,
...對
d 的資訊增益,選擇資訊增益最大的特徵am
; ④ 如果am
的資訊增益小於閾值
ϵ ,則置
t 為單節點樹,並將
d中例項數最大的類ck
作為該結點的類標記,返回
t ;
⑤ 否則,對am
的每乙個可能值 ai
,依am
=ai 將
d 分割為若干非空子集di
,將di 中例項數最大的類作為標記,構建子結點,由結點及其子結點構成樹
t ,返回t;
⑥ 對第
i 個子結點,以di
為訓練集,以
a -為特徵集,遞迴呼叫步驟①~⑤,得到子樹ti
,返回ti
。在使用資訊增益 g(d,a) 進行特徵選擇時,取值多的屬性更容易使資料更純,其資訊增益更大,訓練得到的是一棵龐大且深度淺的數,這樣是不合理的。因此用資訊增益率對這一問題進行校正。c4.5演算法正是以資訊增益率作為其特徵選擇的目標函式的。
資訊增益比為:gr
(d,a
)=g(
d,a)
ha(d
)
其中,g(d
,a) 為資訊增益,ha
(d) 為訓練資料集d關於特徵a的值的熵,ha
(d)=
−∑i=
1n|d
i||d
|log|d
i||d
|
n 是特徵a取值的個數。
c4.5演算法和id3演算法類似,只是把特徵選擇目標函式換成資訊增益率,其演算法過程參照id3。cart演算法是以基尼係數作為其特徵選擇的目標函式的。
在分類問題中,假設由k個類,樣本點屬於第
k類的概率為pk
,則概率分布的基尼係數定義為:gi
ni(p
)=∑k
=1kp
k(1−
pk)=
1−∑k
=1kp
2k=1
−∑k=
1k(|
ck||
d|)2
與id3演算法和c4.5演算法有所不同的是,cart演算法是要選擇基尼係數最小的特徵做為當前狀態下的分類依據。
決策樹演算法
本文主要介紹id3 c4.5和cart演算法 決策樹起源於概念學習系統 cls 概念學習模型 是乙個事先定義的範疇集合和一些有關例子是否落入給定範疇的判定 概念學習的主要任務 是判斷所給定事物的屬性或特性,並且正確地區分這些事物,將其劃分到某乙個範疇 對於如下決策樹模型 我們首先考慮他的屬性outl...
決策樹演算法
引 最近老師布置了課堂展示的作業,主題是決策樹,老師還舉了買西瓜的決策例子,感覺貼近生活也很有意思。在這之前沒有了解過這個概念,通過幾個禮拜的學習收穫不少。一 首先,什麼是決策樹?個人而言,決策樹就是將人在做決策時的思維脈絡以樹的形式展示出來的產物,即決策的過程模型。這是一棵去不去打高爾夫球的決策樹...
決策樹演算法
之前上機器學習課程時學過決策樹的一些演算法,今天簡單複習一下 這裡選擇屬性a作為分類屬性,values a 為屬性a的所有取值,sv為 取屬性s取值為v時對應的集合,也即對每個取值v,都計算其對應的子集合的資訊熵e sv 然後用其佔總集合的比例加權,求和即可得到將屬性a作為分類屬性後的資訊熵,用原來...