决策树

决策树

作者: l i t t l e − x u little-xu littlexu
时间: 2021 / 1 / 18 2021/1/18 2021/1/18

基本流程

Conception
一般情况,一棵决策树包含一根根节点,若干个内部节点和若干个叶节点;叶节点对应决策结果,其他每个节点对应属性测试。举例,当我们买西瓜,可以从多方面色泽,根蒂,敲声,纹理,脐部,触感等方面来逐次判断他是否是一个好西瓜。而此时这些属性就类比决策树中的节点。
决策树学习的目的是产生一棵泛化能力强(处理未见示例能力强的决策树),分而治之

划分选择

信息增益

决策树的分支节点所包含样本尽可能属于同一类别,即节点的"纯度"越来越高
信息熵定义:

E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k log ⁡ 2 p k \begin{aligned} Ent(D) = -\sum_{k=1}^{\lvert y \rvert}p_k\log_2p_k \end{aligned} Ent(D)=k=1ypklog2pk

其中当前样本 D D D中第 k k k类样本所占比例为 p k ( k = 1 , 2 , ⋯   , ∣ y ∣ ) p_k(k=1,2,\cdots,\lvert \mathbf{y} \rvert) pk(k=1,2,,y), E n t ( D ) Ent(D) Ent(D)的值越小,则 D D D的纯度越小.

G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V D v D E n t ( D v ) \begin{aligned} Gain(D,a) = Ent(D)-\sum_{v=1}^{V}\cfrac{D^v}{D}Ent(D^v) \end{aligned} Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)

其中离散属性 a a a V V V个可能取值 { a 1 , a 2 , ⋯   , a V } \{a^1,a^2,\cdots,a^V\} { a1,a2,,aV},就是对属性进行 v v v次划分,比如我们可以根据色则进行划分青绿,乌黑,浅白。第 v v v个分支节点包含 D D D所有在属性 a a a在属性 a a a上取值为 a v a^v av的样本,比如我们把 D D D中所有青绿的记为 D 青 绿 D^{青绿} D绿。分枝结点赋予权重 ∣ D v ∣ ∣ D ∣ \cfrac{\lvert D^v \rvert}{\lvert D \rvert} DDv,计算出 D 青 绿 D^{青绿} D绿的信息熵 E n t ( D v ) Ent(D^v) Ent(Dv)。则可以计算划分后信息熵的增加.
编号 色泽 根蒂 敲声 纹理 脐部 触感 好瓜
1 青绿 蜷缩 浊响 清晰 凹陷 硬滑
2 乌黑 蜷缩 沉闷 清晰 凹陷 硬滑
3 乌黑 蜷缩 浊响 清晰 凹陷 硬滑
4 青绿 蜷缩 沉闷 清晰 凹陷 硬滑
5 浅白 蜷缩 浊响 清晰 凹陷 硬滑
6 青绿 稍蜷 浊响 清晰 稍凹 软粘
7 乌黑 稍蜷 浊响 稍糊 稍凹 软粘
8 乌黑 稍蜷 浊响 清晰 稍凹 硬滑
9 乌黑 稍蜷 沉闷 稍糊 稍凹 硬滑
10 青绿 硬挺 清脆 清晰 平坦 软粘
11 浅白 硬挺 清脆 模糊, 平坦 硬滑
12 浅白 ,蜷缩 浊响 模糊 平坦 软粘
13 青绿 稍蜷 浊响 稍糊 凹陷 硬滑
14 浅白 稍蜷 沉闷 稍糊 ,凹陷 硬滑
15 乌黑 ,稍蜷 浊响 清晰 稍凹 软粘
16 浅白 蜷缩 浊响 模糊 平坦 硬滑
17 青绿 蜷缩 沉闷 稍糊 稍凹 硬滑
根节点包含 D D D中所有好瓜坏瓜样例,其中正例占 p 1 = 8 17 p_1=\cfrac{8}{17} p1=178,反例占 p 2 = 9 17 p_2=\cfrac{9}{17} p2=179,根节点信息熵为

E n t ( D ) = − ∑ k = 1 2 p k log ⁡ 2 p k = − ( 8 17 log ⁡ 2 8 17 + 9 17 log ⁡ 2 8 17 ) = 0.998 \begin{aligned} Ent(D) = -\sum_{k=1}^{2}p_k\log_2p_k = -(\cfrac{8}{17}\log_2\cfrac{8}{17}+\cfrac{9}{17}\log_2\cfrac{8}{17}) = 0.998 \end{aligned} Ent(D)=k=12pklog2pk=(178log2178+179log2178)=0.998

以色泽为属性
D 青 绿 D^{青绿} D绿包含编号 { 1 , 4 , 6 , 10 , 13 , 17 } \{1,4,6,10,13,17\} { 1,4,6,10,13,17},好瓜占 3 6 \cfrac{3}{6} 63,坏瓜占 3 6 \cfrac{3}{6} 63
D 乌 黑 D^{乌黑} D包含编号 { 2 , 3 , 7 , 8 , 9 , 15 } \{2,3,7,8,9,15\} { 2,3,7,8,9,15},好瓜占 4 6 \cfrac{4}{6} 64,坏瓜占 2 6 \cfrac{2}{6} 62
D 浅 白 D^{浅白} D包含编号 { 5 , 11 , 12 , 14 , 16 } , \{5,11,12,14,16\}, { 5,11,12,14,16},好瓜占 1 5 \cfrac{1}{5} 51,坏瓜占 4 5 \cfrac{4}{5} 54
则由信息熵的公式可以分别计算出

E n t ( D 青 绿 ) = − ( 3 6 log ⁡ 2 3 6 + 3 6 log ⁡ 2 3 6 ) = 1.0000 E n t ( D 乌 黑 ) = − ( 4 6 log ⁡ 2 4 6 + 2 6 log ⁡ 2 2 6 ) = 0.918 E n t ( D 青 绿 ) = − ( 1 5 log ⁡ 2 1 5 + 4 5 log ⁡ 2 4 5 ) = 0.722 \begin{aligned} Ent(D^{青绿}) & =-(\cfrac{3}{6}\log_2\cfrac{3}{6}+\cfrac{3}{6}\log_2\cfrac{3}{6}) = 1.0000 \\ Ent(D^{乌黑}) & =-(\cfrac{4}{6}\log_2\cfrac{4}{6}+\cfrac{2}{6}\log_2\cfrac{2}{6}) = 0.918 \\ Ent(D^{青绿}) & =-(\cfrac{1}{5}\log_2\cfrac{1}{5}+\cfrac{4}{5}\log_2\cfrac{4}{5}) = 0.722 \end{aligned} Ent(D绿)Ent(D)Ent(D绿)=(63log263+63log263)=1.0000=(64log264+62log262)=0.918=(51log251+54log254)=0.722

则色泽的信息增益为

G a i n ( D , 色 泽 ) = E n t ( D ) − ∑ v = 1 3 D v D E n t ( D v ) = 0.998 − ( 6 17 × 1.000 + 6 17 × 0.918 + 5 17 × 0.722 ) = 0.109 \begin{aligned} Gain(D,色泽) & = Ent(D)-\sum_{v=1}^{3}\cfrac{D^v}{D}Ent(D^v) \\ & = 0.998-(\cfrac{6}{17}\times1.000+\cfrac{6}{17}\times0.918+\cfrac{5}{17}\times0.722) \\ & = 0.109 \end{aligned} Gain(D,)=Ent(D)v=13DDvEnt(Dv)=0.998(176×1.000+176×0.918+175×0.722)=0.109

同理可得

G a i n ( D , 根 蒂 ) = 0.143 ; G a i n ( D , 敲 声 ) = 0.141 ; G a i n ( D , 纹 理 ) = 0.381 ; G a i n ( D , 脐 部 ) = 0.289 ; G a i n ( D , 触 感 ) = 0.006 \begin{aligned} Gain(D,根蒂) & = 0.143; \quad Gain(D,敲声) = 0.141; \\ Gain(D,纹理) & = 0.381; \quad Gain(D,脐部) = 0.289; \\ Gain(D,触感) & = 0.006 \end{aligned} Gain(D,)Gain(D,)Gain(D,)=0.143;Gain(D,)=0.141;=0.381;Gain(D,)=0.289;=0.006

注: I D 3 ID3 ID3决策树一般而言,信息增益越大,则意味着属性 a a a来进行的划分"纯度提升越大",所以选择属性 a ∗ = a r g m a x a ∈ A G a i n ( D , a ) a_*=\mathop{argmax}\limits_{a\in A}Gain(D,a) a=aAargmaxGain(D,a)划分
不难看出纹理的信息增益最大,意味着好瓜是最多的,所以选择纹理为划分属性使用 Typora 画图(类图、流程图、时序图)
清晰
稍糊
模糊
纹理=?
1,2,3,4,5,6,8,10,15
7,9,13,14,17
11,12,16
以纹理为清晰为例
D 清 晰 D^{清晰} D包含编号 { 1 , 2 , 3 , 4 , 5 , 6 , 8 , 10 , 15 } \{1,2,3,4,5,6,8,10,15\}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值