【引用小例子超详细解说】ID3和C4.5决策树详解及应用(一)

本文详细介绍了决策树中的ID3和C4.5算法,通过一个具体的小实例展示了如何利用ID3算法处理数据,解释了信息熵、条件熵和信息增益等基本概念,逐步构建决策树的过程。
摘要由CSDN通过智能技术生成

1、引例

假如让不了解NBA的社区张大妈猜去年夺冠的球队 【去年总决赛勇士VS骑士,勇士总冠军】 。给出的候选球队依次为w-1-火箭、w-2-勇士、w-3-步行者、w-4-雷霆、e-1-猛龙、e-2-凯尔特人、e-3-76人e-4-骑士这8支队伍。当大妈每猜一次时只能给出正确与错误的反馈时,那么如何让不知情的张大妈能在最少次数下答对?

在不知情的情况下猜测,每个队伍的夺冠概率相同,那么最糟的情况是猜了7次,利用折半法也需要3次。因为当概率均等时,信息熵最大,即不确定性最大。(信息熵概念下文有)那如果大妈平时偶尔了解过NBA并且知道球队分为东西部以及了解某几个球队比较有夺冠实力的话,那不就可以减少猜测的次数了?

这背后就隐藏着决策树了,决策树就是降低信息不确定性的过程

2、基本概念

引入决策树前,必须要了解“信息熵”以及“信息增益”。

2.1、信息熵

想了解熵的更多信息,可以参阅另外一篇博客

熵是表示随机变量不确定性的度量。

信息论之父克劳德·香农给出的信息熵的三个性质[1]:

1、单调性,发生概率越高的事件,其携带的信息量越低;

2、非负性,信息熵可以看作为一种广度量,非负性是一种合理的必然;

3、累加性,即多随机事件同时发生存在的总不确定性的量度是可以表示为各事件不确定性的量度的和,这也是广度量的一种体现。

熵(entropy)一般用 H H H 表示,单位为比特。当概率均等时,信息熵最大,即不确定性最大。 香农从数学上严格证明了满足上述三个条件的随机变量不确定性度量函数具有唯一形式:
H ( X ) = − C ∑ x ∈ χ p ( x ) log ⁡ p ( x ) H(X) = - C\sum_{x\in \chi }p(x)\log p(x) H(X)=Cxχp(x)logp(x)

其中 C C C 为常数,我们将 C = 1 C=1 C=1 便可以得到信息熵公式。

2.2、条件熵

条件熵(condition entropy)表示在给定已知某种条件 X X X 下,事物 Y Y Y 的熵即为条件熵 H ( Y ∣ X ) H(Y\mid X) H(YX) ,其公式定义为:
H ( Y ∣ X ) = ∑ x ∈ X p ( x ) H ( Y ∣ x ) = − ∑ x ∈ X p ( x ) ∑ y ∈ Y p ( y ∣ x ) log ⁡ p ( y ∣ x ) H(Y\mid X) = \sum_{x\in X}p(x)H(Y\mid x) = - \sum_{x\in X}p(x)\sum_{y\in Y}p(y\mid x)\log p(y\mid x) H(YX)=xXp(x)H(Yx)=xXp(x)yYp(yx)logp(yx)

2.3、信息增益

信息增益(information gain)表示存在某种条件 X X X ,它使得条件熵 H ( Y ∣ X ) H(Y\mid X) H(YX) 尽可能的小(也就是“不确定性”减少的多),即当引入信息 X X X 之后,事物 Y Y Y 的熵变小了。则信息增益记为:
g ( Y ∣ X ) = H ( Y ) − H ( Y ∣ X ) g(Y\mid X) = H(Y) - H(Y\mid X) g(YX)=H(Y)H(YX)

3、小实例(利用ID3算法处理)

【数据介绍】:14天打篮球情况,包含4种环境特征

【目标】:构造决策树

【数据展示】:

ID weather(天气) temperature(温度) humidity(湿度) windy(风况) play(是否打球)
1 sunny hot high false no
2 sunny hot high true no
3 overcast hot high false yes
4 rainy mild high false yes
5 rainy cool normal false yes
6 rainy cool normal true no
overcast cool normal true yes
8 sunny mild high false no
9 sunny cool normal false yes
10 rainy mild normal false yes
11 sunny mild normal true yes
12 overcast mild high true yes
13 overcast hot normal false yes
14 rainy mild high true no

【开始分析】:

第一步,根据标签值(打没打篮球),计算熵。

14天中有9天打,5天没打,此时熵:

{ χ = { n o , y e s } p ( x = y e s ) = 9 14 p ( x = n o ) = 5 14 \begin{cases}\chi = \left \{ no, yes \right \} \\p(x = yes) = \tfrac{9}{14}\\p(x = no) = \tfrac{5}{14} \end{cases} χ={ no,yes}p(x=yes)=149p(x=no)=145

H ( p l a y ) = − ∑ x ∈ χ p ( x ) log ⁡ p ( x ) = − 9 14 log ⁡ 9 14 − 5 14 log ⁡ 5 14 = 0.940 H(play) = - \sum_{x\in \chi }p(x)\log p(x) = - \frac{9}{14}\log \frac{9}{14} - \frac{5}{14}\log \frac{5}{14} = 0.940 H(play)=xχp(x)logp(x)=149log149145log145=0.940

第二步,根据4种特征分别计算条件熵。
  1. 基于weather条件。

    通过数据表格,我们知道:
    w e a t h e r ( 14 ) { s u n n y ( 5 ) { y e s ( 2 ) n o ( 3 ) o v e r c a s t ( 4 ) { y e s ( 4 ) n o ( 0 ) r a i n y ( 5 ) { y e s ( 3 ) n o ( 2 ) weather(14) \begin{cases} sunny(5)\begin{cases}yes(2)\\no(3)\end{cases} \\overcast(4)\begin{cases}yes(4)\\no(0)\end{cases} \\rainy(5)\begin{cases}yes(3)\\no(2)\end{cases} \end{cases} weather(14)sunny(5){ yes(2)no(3)overcast(4){ yes(4)no(0)rainy(5){ yes(3)no(2)
    那么,计算基于weather的条件熵:
    H ( p l a y ∣ w e a t h e r ) = ∑ x ∈ w e a t h e r p ( x ) H ( p l a y ∣ x ) H(play\mid weather) = \sum_{x\in weather}p(x)H(play\mid x) H(playweather)=xweatherp(x)H(playx)

    = p ( s u n n y ) H ( p l a y ∣ s u n n y ) + p ( o v e r c a s t ) H ( p l a y ∣ o v e r c a s t ) + p ( r a i n y ) H ( p l a y ∣ r a i n y ) = p(sunny)H(play\mid sunny)+p(overcast)H(play\mid overcast)+p(rainy)H(play\mid rainy) =p(sunny)H(playsunny)+p(overcast)H(playovercast)+p(rainy)H(playrainy)

    其中:
    { w e a t h e r = { s u n n y , o v e r c a s t , r a i n y } p l a y = { y e s , n o } p ( s u n n y ) = 5 14 p ( o v e r c a s t ) = 4 14 p ( r a i n y ) = 5 14 ; { p ( y e s ∣ s u n n y ) = 2 5 p ( n o ∣ s u n n y ) = 3 5 p ( y e s ∣ o v e r c a s t ) = 4 4 = 1 p ( n o ∣ o v e r c a s t ) = 0 p ( y e s ∣ r a i n y ) = 3 5 p ( n o ∣ r a i n y ) = 2 5 \begin{cases} weather=\left \{ sunny,overcast,rainy \right \} \\play=\left \{ yes,no \right \} \\p(sunny)=\frac{5}{14} \\p(overcast)=\frac{4}{14} \\p(rainy)=\frac{5}{14} \end{cases} ; \begin{cases} p(yes\mid sunny)=\frac{2}{5} \\p(no\mid sunny)=\frac{3}{5} \\p(yes\mid overcast)=\frac{4}{4}=1 \\p(no\mid overcast)=0 \\p(yes\mid rainy)=\frac{3}{5} \\p(no\mid rainy)=\frac{2}{5} \end{cases} weather={ sunny,overcast,rainy}play={ yes,no}p(sunny)=145p(overcast)=144p(rainy)=145;p(yessunny)=52p(nosunny)=53p(yes

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值