一,簡介
ID3(Iterative Dichotmizer 3)
1.什么是決策樹學習
決策樹學習是以訓練或樣本數據集為基礎的歸納學習算法,是用於分類和預測的重要技術。
2.ID3核心思想
核心思想是利用信息熵原理選擇信息增益最大的屬性作為分類屬性,遞歸地拓展決策樹的分枝,完成決策樹的構造
3.決策樹學習本質是什么
決策樹學習本質上是從訓練數據集中歸納出一組分類規則
二,基礎概念
a.信息熵
熵(entropy)表示隨機變量不確定性的度量,也就是熵越大,變量的不確定性就越大。設是一個有限值的離散隨機變量,其概率分布為:
,
則隨機變量的熵定義為
(若,定義
)
b.條件熵
條件熵表示在已知隨機變量
條件下隨機變量
的不確定性。隨機變量
給定的條件下隨機變量
的條件熵為
,
c.信息增益
特征對訓練數據集
的信息增益
,定義為集合
的經驗熵
與特征A給定條件下
的經驗條件熵
之差,即
信息增益大的特征具有更強的分類能力
d.總結
給定訓練數據集和特征
:
經驗熵表示對數據集
進行分類的不確定性
經驗條件熵表示在特征
給定的條件下對數據集
進行分類的不確定性
表示由於特征
而使得對數據
的分類的不確定性減少的程度。
e.決策樹進行分類的步驟
- 利用樣本數據集構造一顆決策樹,並通過構造的決策樹建立相應的分類模型。這個過程實際上是從一個數據中獲取知識,進行規制提煉的過程。
- 利用已經建立完成的決策樹模型對數據集進行分類。即對未知的數據集元組從根節點依次進行決策樹的游歷,通過一定的路徑游歷至某葉子節點,從而找到該數據元組所在的類或類的分布。
三、示例
銀行客戶信用卡額度預測和判斷 |
|||||
客戶 |
信用記錄 |
收入 |
年齡 |
工作性質 |
額度 |
C1 |
正常 |
較低 |
偏大 |
穩定 |
低 |
C2 |
正常 |
較低 |
偏大 |
一般 |
低 |
C3 |
良好 |
較低 |
偏大 |
穩定 |
高 |
C4 |
欠佳 |
普通 |
偏大 |
穩定 |
高 |
C5 |
欠佳 |
較高 |
正常 |
穩定 |
高 |
C6 |
欠佳 |
較高 |
正常 |
一般 |
低 |
C7 |
良好 |
較高 |
正常 |
一般 |
高 |
C8 |
正常 |
普通 |
偏大 |
穩定 |
低 |
C9 |
正常 |
較高 |
正常 |
穩定 |
高 |
C10 |
欠佳 |
普通 |
正常 |
穩定 |
高 |
C11 |
正常 |
普通 |
正常 |
一般 |
高 |
C12 |
良好 |
普通 |
偏大 |
一般 |
高 |
C13 |
良好 |
較低 |
正常 |
穩定 |
高 |
C14 |
欠佳 |
普通 |
偏大 |
一般 |
低 |
目標分類:信用卡額度:高=9,低=5
用來建立ID3決策樹的客戶情況的四個屬性:
信用記錄={良好、正常、欠佳}
收入={較低、普通、較高}
年齡={偏大、正常}
工作性質={穩定=8、一般=6}
ID3決策樹的生成步驟
- 選擇決策樹的根節點,選着標准:根據屬性的信息增益
- 節點屬性划分
- 對划分的子集按照上述過程進行反復迭代來獲得樹的所有內部節點
- 最后根據節點、內部節點以及葉節點間的關系構建決策樹
(1)計算分類屬性'"額度"的熵
"額度"共有14條記錄,其中高額度9條,低額度5條。
是類
在
中的比例或概率。
(2)計算各條件屬性的熵
首先計算出不同屬性值的熵:
接着再計算整個屬性的熵:
其中,是
中屬性
的值為
的子集,
是類
在
中的比例或概率。
a."工作性質"的熵
穩定(wd):8=6高+2低
一般(yb):6=3高+3低
由"穩定"和一般"一般"的熵可求得屬性"工作性質"的熵為:
b. 信用記錄的熵
正常:5 =2高+3低
良好:4=4高+0低
欠佳:5=3高+2低
可得屬性"信用記錄"的熵為
c."收入"的熵
較高:4=3高+1低
普通:6=4高+2低
較低:4=2高+2低
可得屬性收入的熵為
d."年齡"的熵
正常:7=6高+1低
偏大:7=3高+4低
可得屬性為"年齡"的熵:
(3)計算各條件屬性的增益
,計算各個條件屬性的增益
"信用記錄"有着最大的增益,所以選擇"信用記錄"屬性作為ID3決策樹的根節點。
(4)計算和選擇各分支節點
完成了根節點的選擇后接下來選擇各分支節點。因為"信用記錄"有三種類型,所以根節點就有三個分支"良好","正常"和"欠佳",由於其中"良好"的熵為0就不考慮它了,只處理"正常"和"欠佳"
a."正常"分支節點的選擇
"信用記錄"為正常的有5條,。通過之前的計算已經得到了"信用記錄"為正常的熵:
,接着計算"信用記錄"為正常的條件下各屬性的熵
客戶 |
信用記錄 |
收入 |
年齡 |
工作性質 |
額度 |
C1 |
正常 |
較低 |
偏大 |
穩定 |
低 |
C2 |
正常 |
較低 |
偏大 |
一般 |
低 |
C8 |
正常 |
普通 |
偏大 |
穩定 |
低 |
C9 |
正常 |
較高 |
正常 |
穩定 |
高 |
C11 |
正常 |
普通 |
正常 |
一般 |
高 |
(a)"收入"的熵
收入有三個屬性值"較高"、"普通"和"較低",它們的熵分別為:
正常+較高:1=1高
正常+普通:2 =1高+1低
正常+較低:2=2低
可得屬性"收入"的熵:
(b)"年齡"的熵
"年齡"={正常,偏大}
正常+正常:2=2高
正常+偏大:3=3低
可得屬性"年齡"的熵
(c)"工作性質"的熵
"工作性質"={"一般","穩定"}
正常+一般:2=1高+1低
正常+穩定:3=1高+2低
可得"工作性質"的熵
(d)計算
的各屬性增益
根據上面計算所得的熵值可以得到"信用記錄"為"正常"的記錄中其余三個屬性的增益分別為:
"年齡"在的三個屬性中有着最大的增益,所以將"年齡"作為
的分類點,又由於
,所以這一分支結束。
b."欠佳"分支節點的選擇
"信用記錄"為"欠佳"的有
客戶 |
信用記錄 |
收入 |
年齡 |
工作性質 |
額度 |
C4 |
欠佳 |
普通 |
偏大 |
穩定 |
高 |
C5 |
欠佳 |
較高 |
正常 |
穩定 |
高 |
C6 |
欠佳 |
較高 |
正常 |
一般 |
低 |
C10 |
欠佳 |
普通 |
正常 |
穩定 |
高 |
C14 |
欠佳 |
普通 |
偏大 |
一般 |
低 |
- 收入的熵
欠佳+較高:2=1高+1低
欠佳+普通:3=2高+1低
欠佳+較低:0
可得屬性"收入"的熵為:
(b)"年齡"的熵
欠佳+正常 :3=2高+1低
欠佳+偏大:2=1高+1低
(c)"工作性質"的熵
欠佳+穩定: 3=3高
欠佳+一般:2=2低
(d)計算的各屬性增益
可以看到"工作性質"在三個屬性中有着最大的增益,所以將"工作性質"作為
的分類節點
(5)生成葉節點
因為的"年齡"屬性中"高"和"正常"的熵都為0,所以這一支的非葉節點划分結束,並以"低"和"高"作為"高"和"正常"分支的葉節點。
的"工作性質"中"一般"和"穩定"的熵為0,所以這一支的非葉節點也結束划分,並以"低"和高作為"一般"和"穩定"的分支的節點
可得如下描述:
a, 如果"信用記錄"為"正常"並且"年齡"偏大,那么授予的額度低
b, 如果"信用記錄"為"正常"並且"年齡"正常,那么授予的額度高
c, 如果"信用記錄"為"良好",那么授予額度高
d, 如果"信用記錄"為"欠佳"並且"工作性質"一般,那么授予的額度低
e, 如果"信用記錄"為"欠佳"並且"工作性質"穩定,那么授予的額度高
四、參考與致謝
1.李航《統計學習方法》
2.張睿《ID3決策樹算法分析與改進》