ID3決策樹算法


一,簡介

ID3(Iterative Dichotmizer 3)

1.什么是決策樹學習

決策樹學習是以訓練或樣本數據集為基礎的歸納學習算法,是用於分類和預測的重要技術。

 

2.ID3核心思想

核心思想是利用信息熵原理選擇信息增益最大的屬性作為分類屬性,遞歸地拓展決策樹的分枝,完成決策樹的構造

 

3.決策樹學習本質是什么

決策樹學習本質上是從訓練數據集中歸納出一組分類規則

二,基礎概念

a.信息熵

熵(entropy)表示隨機變量不確定性的度量,也就是熵越大,變量的不確定性就越大。設是一個有限值的離散隨機變量,其概率分布為:

則隨機變量的熵定義為

(若,定義

 

b.條件熵

條件熵表示在已知隨機變量條件下隨機變量的不確定性。隨機變量給定的條件下隨機變量的條件熵為

 

c.信息增益

特征對訓練數據集的信息增益,定義為集合的經驗熵與特征A給定條件下的經驗條件熵之差,即

信息增益大的特征具有更強的分類能力

 

d.總結

給定訓練數據集和特征

經驗熵表示對數據集進行分類的不確定性

經驗條件熵表示在特征給定的條件下對數據集進行分類的不確定性

表示由於特征而使得對數據 的分類的不確定性減少的程度。

 

e.決策樹進行分類的步驟

  1. 利用樣本數據集構造一顆決策樹,並通過構造的決策樹建立相應的分類模型。這個過程實際上是從一個數據中獲取知識,進行規制提煉的過程。
  2. 利用已經建立完成的決策樹模型對數據集進行分類。即對未知的數據集元組從根節點依次進行決策樹的游歷,通過一定的路徑游歷至某葉子節點,從而找到該數據元組所在的類或類的分布。

 

三、示例

銀行客戶信用卡額度預測和判斷

客戶

信用記錄

收入

年齡

工作性質

額度

C1

正常

較低

偏大

穩定

C2

正常

較低

偏大

一般

C3

良好

較低

偏大

穩定

C4

欠佳

普通

偏大

穩定

C5

欠佳

較高

正常

穩定

C6

欠佳

較高

正常

一般

C7

良好

較高

正常

一般

C8

正常

普通

偏大

穩定

C9

正常

較高

正常

穩定

C10

欠佳

普通

正常

穩定

C11

正常

普通

正常

一般

C12

良好

普通

偏大

一般

C13

良好

較低

正常

穩定

C14

欠佳

普通

偏大

一般

 

目標分類:信用卡額度:高=9,低=5

用來建立ID3決策樹的客戶情況的四個屬性:

信用記錄={良好、正常、欠佳}

收入={較低、普通、較高}

年齡={偏大、正常}

工作性質={穩定=8、一般=6}

 

ID3決策樹的生成步驟

  1. 選擇決策樹的根節點,選着標准:根據屬性的信息增益
  2. 節點屬性划分
  3. 對划分的子集按照上述過程進行反復迭代來獲得樹的所有內部節點
  4. 最后根據節點、內部節點以及葉節點間的關系構建決策樹

 

 

(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

欠佳

普通

偏大

一般

 

  1. 收入的熵

欠佳+較高: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決策樹算法分析與改進》

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM