【機(jī)器學(xué)習(xí)小筆記】決策樹

決策樹一句話概括

通過信息增益,采用遞歸的方式生成樹(找出最合適的節(jié)點(diǎn)順序以及葉子對(duì)應(yīng)的類標(biāo)簽)

舉個(gè)栗子: 是否買計(jì)算機(jī)

問題描述:已知1024個(gè)人的年齡、收入、職業(yè)是否為學(xué)生、信譽(yù)是否良好及是否會(huì)有買計(jì)算機(jī)的行為,若已知一個(gè)新人的年齡、收入等信息,請(qǐng)判斷該新人是否會(huì)買計(jì)算機(jī)。

數(shù)學(xué)表達(dá):已知 1024 個(gè)樣本的特征向量 ( x(1), x(2), x(4), x(4)) 和預(yù)測(cè)值Y以及新樣本的特征向量,計(jì)算新樣本預(yù)測(cè)值Y。

如圖所示

人數(shù) 年齡 收入 是否學(xué)生 信譽(yù) 標(biāo)簽:是否買計(jì)算機(jī)
64 不買
64 優(yōu) 不買
128
60
64
64 優(yōu) 不買
64 優(yōu)
128 不買
64
132
64 優(yōu)
32 優(yōu)
32
63 優(yōu) 不買
1 優(yōu)
新樣本
  • 總?cè)藬?shù):1024
    買的人數(shù):641
    不買的人數(shù):383
  • 青年:384
    青年中買的人數(shù):128
    青年中不買的人數(shù):256
  • 中年:256
    中年買:256
    中年不買: 0
  • 老年: 252
    老年買: 125
    老年不買: 127
  • 學(xué)生:略
  • 非學(xué)生: 略

決策樹步驟

一、總覽

def createBranch():
    #判斷邊界
    if 數(shù)據(jù)集中的每個(gè)子項(xiàng)是否屬于同一分類(是):
        return 類標(biāo)簽(葉子)    
    #遞歸生成樹
    else:
        尋找劃分?jǐn)?shù)據(jù)集的最好特征         
        劃分?jǐn)?shù)據(jù)集                  
        創(chuàng)建分支結(jié)點(diǎn)    
            for 每個(gè)劃分的子集:    
                createBranch()    
            return 分支結(jié)點(diǎn)

二、尋找劃分?jǐn)?shù)據(jù)集的最好特征

ID3:信息增益

C4.5:信息增益率

CART:基尼系數(shù)

三、具體過程——以ID3算法為例

  • 基本數(shù)學(xué)符號(hào)

m 個(gè)樣本 —— m 個(gè)人

n 個(gè)特征向量 ( X(1), X(2), ... , X(n)) —— ( X(1), X(2), X(4), X(4) )

預(yù)測(cè)值 { Y1, Y2, ..., Yk } —— { Y1: 買, Y2: 不買 }

新樣本X = ( x(1), x(2), ... , x(n)) —— 新人X= ( x(1), x(2), x(3), x(4) )


  • 概率計(jì)算

X 為買時(shí)概率為:
p(Y_1) = 641 / 1024

不買時(shí)概率為:
p(Y_2) = 383 / 1024

X在年齡為青年的條件下買電腦的概率為 :
p(Y_1|youth) = 128 / 384

X在年齡為青年的條件下不買電腦的概率為:
p(Y_2|youth) = 256 / 384

X在年齡為中年的條件下買電腦的概率為:
p(Y_1|middle) = 256 / 256

X在年齡為中年的條件下不買電腦的概率為:
p(Y_2|middle) = 0 / 256

X在年齡為老年的條件下買電腦的概率為:
p(Y_1|old) = 125 / 252

X在年齡為老年的條件下不買電腦的概率為:
p(Y_2|old) = 127 / 252


  • 尋找劃分?jǐn)?shù)據(jù)集的最好特征——信息增益

信息熵的大小指的是了解一件事情所需要付出的信息量是多少,這件事的不確定性越大,要搞清它所需要的信息量也就越大,也就是它的信息熵越大,信息熵:
H(Y) = -\sum_{i=1}^{i=k}{p(Y_i)log_2(Y_i)}= -p(Y_1)log_2(p(Y_1))-p(Y_2)log_2(p(Y_2)) = 0.9537

條件熵:
H(Y|age) = p(youth)H(Y|youth) + p(middle)H(Y|middle) + p(old)H(Y|old)=0.6877

其中:
H(Y|youth) = -\sum_{i=1}^{i=k}{p(Y_i|youth)}log_2(p(Y_i|youth)) = p(Y_1|youth)log_2(p(Y_1|youth)+p(Y_2|youth)log_2(p(Y_2|youth) = 0.9183

H(Y|middle) = 0

H(Y|old) = 0.9157

信息增益:
IG(age) = H(Y) - H(Y|age) = 0.9537 - 0.6877 = 0.2660

同理:
IG(income) = H(Y) - H(Y|income) = 0.0176

IG(Student) = H(Y) - H(Y|Student) = 0.01726

IG(credit) = H(Y) - H(Y|credit) = 0.0453


  • 劃分?jǐn)?shù)據(jù)集,創(chuàng)建分支節(jié)點(diǎn)

年齡的信息增益最大,因此第一個(gè)結(jié)點(diǎn)為年齡,即:


將樣本劃分為青年、中年和老年三個(gè)數(shù)據(jù)集,在青年這個(gè)數(shù)據(jù)集中:
H(youth) = H(Y|youth)= 0.9183

IG(income)= H(youth) - H(youth|income)

IG(student)= H(youth) - H(youth|student)

IG(credit) = H(youth) - H(youth|redit)

其中是否為學(xué)生的信息增益最大,因此選擇是否為學(xué)生作為青年集的結(jié)點(diǎn),將青年數(shù)據(jù)集劃分為學(xué)生集與非學(xué)生集,即:



在中年這個(gè)數(shù)據(jù)集中,所有人都會(huì)買電腦,屬于同一個(gè)類別,返回類標(biāo)簽即可:



在老年這個(gè)數(shù)據(jù)集中,信譽(yù)的增益最大,因此選擇將信譽(yù)作為老年集的結(jié)點(diǎn),將其劃分為優(yōu)信譽(yù)集與良信譽(yù)集,即:

最終生成的決策樹:略

四、補(bǔ)充

剪枝處理

  • 預(yù)剪枝
  • 后剪枝

連續(xù)與缺失值

  • 連續(xù)值

  • 缺失值

  • 待更新

參考:
《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》【美】Peter Harrington

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容