决策树的公式推导——ID3

决策树的公式推导——ID3ID3 算法 信息熵 熵是度量样本集合纯度最常用的一种指标 代表一个系统中蕴含着多少信息量 信息量越大表面一个系统不确定性就越大 就存在跟多的可能性 即信息熵越大 假定当前样本集合 D 中第 k 类样本所占的比例为 P k P k

大家好,我是讯享网,很高兴认识大家。

ID3算法

信息熵
熵是度量样本集合纯度最常用的一种指标,代表一个系统中蕴含着多少信息量,信息量越大表面一个系统不确定性就越大,就存在跟多的可能性,即信息熵越大
假定当前样本集合D中第k类样本所占的比例为 P k P_k Pk(k=1,2,……,|y|),则D的信息熵为:
E n t = − ∑ k = 1 ∣ y ∣ p k l o g 2 p k Ent = -\sum_{k=1}^{|y|} p_k log_2p_k Ent=k=1ypklog2pk
其中,|y|表示样本类被种数, p k p_k pk表示第k类样本所占比例,且 0 ≤ p k ≤ 1 , ∑ k = 1 n p k = 1 0\leq p_k \leq1,\sum_{k=1}^{n}p_k=1 0pk1,k=1npk=1
信息熵满足以下不等式:
0 ≤ E n t ( D ) ≤ l o g 2 ∣ y ∣ 0\leq Ent(D) \leq log_2|y| 0Ent(D)log2y y表示样本D中的个数
若令|y|=n, p k = x k p_k=x_k pk=xk,那么信息熵 E n t ( D ) Ent(D) Ent(D)就可以看作一个n元的实值函数,即
E n t ( D ) = f ( x 1 , … … , x n ) = − ∑ k = 1 n x k l o g 2 x k Ent(D) = f(x_1,……,x_n)=-\sum_{k=1}^nx_klog_2x_k Ent(D)=f(x1,,xn)=k=1nxklog2xk,其中: 0 ≤ x q ≤ 1 , ∑ k = 1 n x k = 1 0\leq x_q \leq1,\sum_{k=1}^nx_k=1 0xq1,k=1nxk=1
引入拉格朗日乘子法 λ \lambda λ
L ( x 1 , … … x n , λ ) = − ∑ k = 1 n x k l o g 2 x k + λ ( ∑ k = 1 n x k − 1 ) L(x_1,……x_n,\lambda)=-\sum_{k=1}^nx_klog_2x_k+\lambda(\sum_{k=1}^nx_k-1) L(x1,xn,λ)=k=1nxklog2xk+λ(k=1nxk1)
对L分别关于 x , λ x,\lambda x,λ求一阶偏导,并令偏导等于0:
∂ ( x 1 , … … , x n , λ ) ∂ x 1 = ∂ ∂ x 1 [ − ∑ k = 1 n x k l o g 2 x k + λ ( ∑ k = 1 n x k − 1 ) ] = 0 \frac{\partial(x_1,……,x_n,\lambda)}{\partial x_1}=\frac{\partial }{\partial x_1}[-\sum_{k=1}^{n}x_klog_2x_k+\lambda (\sum _{k=1}^{n}x_k-1)] = 0 x1(x1,,xn,λ)=x1[k=1nxklog2xk+λ(k=1nxk1)]=0

= − l o g 2 x 1 − x 1 ⋅ 1 x 1 l n 2 + λ = 0 = -log_2 x_1-x_1 \cdot\frac{1}{x_1ln2}+\lambda=0 =log2x1x1x1ln21+λ=0
= − l o g 2 x 1 − 1 l n 2 + λ = 0 =-log_2x_1-\frac{1}{ln2}+\lambda=0 =log2x1ln21+λ=0
⇒ λ = l o g 2 x 1 + 1 l n 2 \Rightarrow\lambda=log_2x_1+\frac{1}{ln2} λ=log2x1+ln21
同理可推:
λ = l o g 2 x 1 + 1 l n 2 = l o g 2 x 2 + 1 l n 2 = … … = l o g 2 x n + 1 l n 2 \lambda = log_2x_1+\frac{1}{ln2}=log_2x_2+\frac{1}{ln2}=……=log_2x_n+\frac{1}{ln2} λ=log2x1+ln21=log2x2+ln21==log2xn+ln21
对于任意的x,满足约束条件:
∑ k = 1 n x k = 1 \sum_{k=1}^{n}x_k=1 k=1nxk=1
因此:
x 1 = x 2 = x 3 … … = x n = 1 n x_1 = x_2 = x_3……=x_n=\frac{1}{n} x1=x2=x3=xn=n1
最大值点还是最小值点需要做个简单的检验:
x 1 = x 2 = x 3 … … = x n = 1 n x_1 = x_2 = x_3……=x_n=\frac{1}{n} x1=x2=x3=xn=n1时:
f ( 1 n , … … 1 n ) = − ∑ k = 1 n 1 n l o g 2 1 n = − n ⋅ l o g 2 1 n = l o g 2 n f(\frac{1}{n},……\frac{1}{n})=-\sum^{n}_{k=1}\frac{1}{n}log_2\frac{1}{n}=-n\cdot log_2\frac{1}{n}=log_2n f(n1,n1)=k=1nn1log2n1=nlog2n1=log2n
x 1 = 1 , x 2 = x 3 = … … = x n = 0 时 x_1=1,x_2=x_3=……=x_n=0时 x1=1,x2=x3==xn=0
f ( 1 , 0 , … … , 0 ) = − 1 ⋅ l o g 2 1 − 0 ⋅ l o g 2 0 … … − 0 ⋅ l o g 2 0 = 0 f(1,0,……,0)=-1\cdot log_21-0\cdot log_20……-0\cdot log_20=0 f(1,0,,0)=1log210log200log20=0
显然 l o g 2 n ≥ 0 log_2n\geq 0 log2n0,所以 x 1 = x 2 … … = x n = 1 n x_1=x_2……=x_n=\frac{1}{n} x1=x2=xn=n1为最大值点,最大值为 l o g 2 n log_2n log2n
下面考虑求 f ( x 1 , … … , x n ) f(x_1,……,x_n) f(x1,,xn)的最小值,仅考虑 0 ≤ x k ≤ 1 , f ( x 1 , … … , x n ) 0\leq x_k\leq 1,f(x_1,……,x_n) 0xk1,f(x1,xn)可以看作是n个互不相关一元函数的加和,即:
f ( x 1 , … … , x n ) = ∑ k = 1 n g ( x k ) f(x_1,……,x_n) = \sum_{k=1}^{n}g(x_k) f(x1,xn)=k=1ng(xk)
g ( x k ) = − x k l o g 2 x k , 0 ≤ x k ≤ 1 g(x_k)=-x_klog_2x_k,0\leq x_k\leq 1 g(xk)=xklog2xk,0xk1
g ( x i ) g(x_i) g(xi)的最小值,但因为其表达式相同。所以只求出一个就可。
g ( x 1 ) g(x_1) g(x1)的最小值,首先对 g ( x 1 ) g(x_1) g(x1)关于 x 1 x_1 x1求一阶、二阶导数:
g ( x 1 ) ′ = d ( − x 1 l o g 2 x 1 ) d x 1 = − l o g 2 x 1 − x 1 ⋅ 1 x 1 l n 2 = − l o g 2 x 1 − l n 2 g(x_1)' = \frac{d(-x_1log_2x_1)}{dx_1}=-log_2x_1-x_1\cdot \frac{1}{x_1ln2}=-log_2x_1-ln2 g(x1)=dx1d(x1log2x1)=log2x1x1x1ln21=log2x1ln2
g ( x 1 ) ′ ′ = d ( − l o g 2 x 1 − 1 l n 2 ) d x 1 = − 1 x 1 l n 2 g(x_1)''=\frac{d(-log_2x_1-\frac{1}{ln2})}{dx_1}=-\frac{1}{x_1ln2} g(x1)=dx1d(log2x1ln21)=x1ln21
在定义域 0 ≤ x k ≤ 1 0\leq x_k \leq 1 0xk1上,始终有 g ′ ′ ( x 1 ) = − 1 x 1 l n 2 < 0 g''(x_1)=-\frac{1}{x_1ln2}<0 g(x1)=x1ln21<0,即 g ( x i ) g(x_i) g(xi)为开口向下的凹函数,最小值在边界 x 1 = 0 x_1=0 x1=0 x 1 = 1 x_1=1 x1=1处取得:
g ( 0 ) = − 0 l o g 2 0 = 0 g(0) = -0log_20=0 g(0)=0log20=0
g ( 1 ) = − 1 l o g 2 1 = 0 g(1)=-1log_21=0 g(1)=1log21=0
g ( x 1 ) g(x_1) g(x1)的最小值即为0,同理可得 g ( x 2 ) … … g ( x n ) g(x_2)……g(x_n) g(x2)g(xn)的最小值也0,那么 f ( x 1 , … … , x n ) f(x_1,……,x_n) f(x1,,xn)的最小值此时为0
如果令某个 x k = 1 x_k = 1 xk=1,那么根据约束条件 ∑ k = 1 n = 1 \sum_{k=1}^{n}=1 k=1n=1可知:
x 1 = x 2 = … … = x k + 1 = … … = x n = 0 x_1=x_2=……=x_{k+1}=……=x_n=0 x1=x2==xk+1==xn=0
带入 f ( x 1 , … … , x n ) f(x_1,……,x_n) f(x1,,xn)得:
f ( 0 , 0 … … 0 , 1 , 0 … … 0 ) = 0 f(0,0……0,1,0……0)=0 f(0,00,1,00)=0
所以 x k = 1 , x 1 = x 2 = … … = x k − 1 = x k + 1 = … … = x n = 0 x_k=1,x_1=x_2=……=x_{k-1}=x_{k+1}=……=x_n=0 xk=1,x1=x2==xk1=xk+1==xn=0,一定是 f ( x 1 , … … , x n ) f(x_1,……,x_n) f(x1,,xn)在满足约束条件下的最小值点,其最小值和为0。
所以说: 0 ≤ E n t ( D ) ≤ l o g 2 n 0\leq Ent(D)\leq log_2n 0Ent(D)log2n

信息增益

假定离散属性 α \alpha α V V V个可能的取值 α 1 , α 2 … … α V {\alpha ^1,\alpha^2……\alpha^V} α1,α2αV,如果使用特征a来对数据集 D D D进行划分,则会产生 V V V个分支结点,其中第 v v v个结点包含了数据集 D D D中所有在特征 α \alpha α上取值为 α V \alpha^V αV的样本总数,记住 D v D^v Dv。再考虑到不同的分支结点所包含的样本数量不同,给分支结点赋予不同的权重,这样对样本数越多的分支点的影响就会越大,因此,就能够计算出特征对样本集 D D D进行划分所获得的“信息增益”:
G a i n ( D , α ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D,\alpha) = Ent(D)-\sum_{v=1}^{V}\frac{|D^v|}{|D|}Ent(D^v) Gain(D,α)=Ent(D)v=1VDDvEnt(Dv)
在这里插入图片描述
讯享网
该数据集包含十七个样本、有五个属性。类别为好瓜(8/17)、坏瓜(9/17)
E n t ( D ) = − 8 17 ∗ l o g 2 8 17 − 9 17 ∗ l o g 2 9 17 = 0.9975 Ent(D)=-\frac{8}{17}*log_2\frac{8}{17}-\frac{9}{17}*log_2\frac{9}{17}=0.9975 Ent(D)=178log2178179log2179=0.9975
下面计算每个信息的信息增益
属性 a 1 a_1 a1:色泽
G a i n ( D , a 1 ) = E n t ( D ) − ∑ v = 1 3 E n t ( D v ) Gain(D,a_1) = Ent(D)-\sum_{v=1}^{3}Ent(D^v) Gain(D,a1)=Ent(D)v=13Ent(Dv)
= E n t ( D ) − ( D 1 D × E n t ( D 1 ) + D 2 D × E n t ( D 2 ) + D 3 D × E n t ( D 3 ) ) =Ent(D)-(\frac{D^1}{D}\times Ent(D^1)+\frac{D^2}{D}\times Ent(D^2)+\frac{D^3}{D}\times Ent(D^3)) =Ent(D)(DD1×Ent(D1)+DD2×Ent(D2)+DD3×Ent(D3))
对数据集进行色泽划分:D1青绿(包含6个样本)、D2乌黑(6个样本)、D3浅白(5个样本)

= 0.9975 − ( 6 17 ( − 3 6 l o g 2 3 6 − 3 6 l o g 2 3 6 ) + 6 17 ( − 4 6 l o g 2 4 6 − 2 6 l o g 2 2 6 + 5 17 ( − 1 5 l o g 2 1 5 − 4 5 l o g 2 4 5 ) ) =0.9975-(\frac{6}{17}(-\frac{3}{6}log_2\frac{3}{6}-\frac{3}{6}log_2\frac{3}{6})+\frac{6}{17}(-\frac{4}{6}log_2\frac{4}{6}-\frac{2}{6}log_2\frac{2}{6}+\frac{5}{17}(-\frac{1}{5}log_2\frac{1}{5}-\frac{4}{5}log_2\frac{4}{5})) =0.9975(176(63log26363log263)+176(64log26462log262+175(51log25154log254))
= 0.1091 =0.1091 =0.1091
同理可求属性 a 2 a_2 a2:根蒂
G a i n ( D , a 2 ) = 0.1427 Gain(D,a_2) = 0.1427 Gain(D,a2)=0.1427
属性 a 3 a_3 a3:敲声
G a i n ( D , a 3 ) = 0.1408 Gain(D,a_3) = 0.1408 Gain(D,a3)=0.1408
属性 a 4 a_4 a4:纹理
G a i n ( D , a 4 ) = 0.3808 Gain(D,a_4)=0.3808 Gain(D,a4)=0.3808
属性 a 5 a_5 a5:脐部
G a i n ( D , a 5 ) = 0.2892 Gain(D,a_5) = 0.2892 Gain(D,a5)=0.2892
比较所得纹理属性的信息增益最大
然后对每一个分支节点做进一步划分,以下图中分支节点(“纹理=清晰”)为例,该结点包含的样本集合中有编号{1、2、3、4、5、6、8、10、15}的九个样例,可用属性集合为{色泽、根蒂、敲声、脐部、触感},基于样本集合(“纹理=清晰”
在这里插入图片描述
样本集合(“纹理=清晰”)的信息熵为:
E n t ( D 2 ) = − 7 9 l o g 2 7 9 − 2 9 l o g 2 2 9 = 0.7642 Ent(D_2)=-\frac{7}{9}log_2\frac{7}{9}-\frac{2}{9}log_2\frac{2}{9}=0.7642 Ent(D2)=97log29792log292=0.7642
我们接下来选择色泽属性 α 1 \alpha_1 α1
G a i n ( D 2 , α 1 ) = E n t ( D 2 ) − ∑ v = 1 3 ∣ D 2 v ∣ D 2 E n t ( D 2 v ) Gain(D_2,\alpha_1)=Ent(D_2)-\sum_{v=1}^{3}\frac{|D_2^v|}{D_2}Ent(D_2^v) Gain(D2,α1)=Ent(D2)v=13D2D2vEnt(D2v)
= E n t ( D 2 ) − ( D 2 1 D 2 × E n t ( D 2 1 ) + D 2 2 D 2 × E n t ( D 2 3 ) D 2 3 D 2 × E n t ( D 2 3 ) ) =Ent(D_2)-(\frac{D_2^1}{D_2}\times Ent(D_2^1)+\frac{D_2^2}{D_2}\times Ent(D_2^3)\frac{D_2^3}{D_2}\times Ent(D_2^3)) =Ent(D2)(D2D21×Ent(D21)+D2D22×Ent(D23)D2D23×Ent(D23))
= 0.0431 =0.0431 =0.0431
根蒂属性, α 2 \alpha_2 α2:
G a i n ( D 2 , α 2 ) = 0.4581 Gain(D_2,\alpha_2)=0.4581 Gain(D2,α2)=0.4581
敲声属性 α 3 \alpha_3 α3:
G a i n ( D 2 , α 3 ) = 0.3308 Gain(D_2,\alpha_3)=0.3308 Gain(D2,α3)=0.3308
脐部属性 α 4 \alpha_4 α4:
G a i n ( D 2 , α 4 ) = 0.4581 Gain(D_2,\alpha_4)=0.4581 Gain(D2,α4)=0.4581
触感属性 α 5 \alpha_5 α5:
G a i n ( D 2 , α 5 ) = 0.4581 Gain(D_2,\alpha_5)=0.4581 Gain(D2,α5)=0.4581

属性 信息增益
色泽 0.0431
根蒂 0.4581
敲声 0.3308
脐部 0.4581
触感 0.4581

随机选择最大的其中之一作为划分属性,这里选择“根蒂”作为划分属性。
在这里插入图片描述
继续对上图中的每个分支结点递归进行划分,以上图中的结点{ “根蒂=蜷缩”}为例,设该样本集为{1,2,3,4,5},共五个样本,但这五个样本的label均为好瓜。因此均为正样本。得到的分支节点图为:
在这里插入图片描述
接下来对上图中结点(“根蒂=稍蜷”)进行划分,该点的样本集为{6,8,15},共3个样本。可用特征集为色泽、敲声、肚脐、触感进行计算信息增益、得到下表

属性 信息增益
色泽 0.251
敲声 0
脐部 0
触感 0.251

色泽触感作为最大,这里我们选择色泽。
在这里插入图片描述
青绿为好瓜,递归返回对乌黑进行划分。色泽等于浅白此点为空,类别按照父节点中类别最高的样本所以色泽为浅白的类别为好瓜。
最终决策树如下图所示
在这里插入图片描述
ID3算法的不足:

  1. ID3没有考虑连续性
  2. ID3采用信息熵大的特征优先建立决策树的节点,取值比较多的特征比取值少的特征信息增益大。
  3. 未对缺失值做考虑
  4. 没有考虑过拟合的情况
小讯
上一篇 2025-04-04 10:20
下一篇 2025-02-06 09:34

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/61783.html