决策树的生成—ID3算法

决策树的生成—ID3算法


算法由来:

决策树算法最开始是由Hunt Earl B提出的CLS(Concept Learning System),但是没有给出采用什么方法选择最优特征,后面罗斯昆(J. Ross Quinlan)提出ID3算法,使用 [信息增益] 确定最优特征,之后罗斯昆又对ID3算法进行了优化改进,得到 C4.5算法,并用 信息增益比来确定最优特征。两种算法本质是差不多的,只是确定最优特征的方法不同,ID3算法偏向于选择数量较多的某一特征,C4.5算法偏向于某一特征单位数量的选择。

ID3算法

输入:训练数据集D、特征集A、阈值 ∈ \in
输出:决策树T

  1. 判断T是否需要选择特征生成决策树:

    ——若D中所有实例属于同一类,则T为单结点树,记录实例类别 C k C_k Ck以此作为该结点的类标记,并返回T:
    ——若D中所有实例无任何特征 ( A = ∅ ) (A=\emptyset) (A=),则T为单结点树,记录D中实例个数最多类别 C k C_k Ck,以此作为该结点的类标记,并返回T;

  2. 否则,计算A中各特征的信息增益,并选择信息增益最大的特征Ag:

    ——若Ag的信息增益小于,则T为单结点树,记录D中实例个数最多类别 C k C_k Ck,以此作为该结点的类标记,并返回T;
    ——否则,按照Ag的每个可能值 a i a_i ai,将D分为若干非空子集 D i D_i Di,将 D i D_i Di中实例个数最多的类别作为标记,构建子结点,以结点和其子节点构成T,并返回T;

  3. 第i个子结点,以 D i D_i Di为训练集,A一Ag为特征集合,递归地调用以上步骤,得到子树 T i T_i Ti并返回。
    在这里插入图片描述
    决策树思想的核心在于当每个迭代出来的训练集计算出的最大信息增益小于阈值时,生成单结点树才可终止。


例题:

计算出来的各个特征的经验熵、经验条件熵、信息增益如下:

最大信息增益为自己的房子这个特征,分为两类:有房子和无房子,有房子的设置单一节点为同意贷款,没有房子的训练数据集作为新的训练数据集 D 2 D_2 D2,再从剩下的特征中计算信息增益,选择最大信息增益的特征。

以特征:年龄为 A 1 A_1 A1, 有工作为 A 2 A_2 A2, 信贷情况为 A 3 A_3 A3

信息增益公式:
g ( D 2 , A i ) = H ( D 2 ) − H ( D 2 ∣ A i ) g\left(D_{2}, A_{i}\right)=H\left(D_{2}\right)-H\left(D_{2} \mid A_{i}\right) g(D2,Ai)=H(D2)H(D2Ai)
经验熵:
H ( D 2 ) = − 6 9 log ⁡ 2 ( 6 9 ) − 3 9 log ⁡ 2 ( 3 9 ) = 0.918 \begin{aligned} H\left(D_{2}\right) &=-\frac{6}{9} \log _{2}\left(\frac{6}{9}\right)-\frac{3}{9} \log _{2}\left(\frac{3}{9}\right) \\ &=0.918 \end{aligned} H(D2)=96log2(96)93log2(93)=0.918
特征:年龄

计算:

青年:

w 1 = ∣ D 21 ∣ ∣ D 2 ∣ = 4 9 H ( D 21 ) = − 1 4 log ⁡ 2 1 4 − 3 4 log ⁡ 2 3 4 = 0.811 \begin{aligned} &w_{1}=\frac{\left|D_{21}\right|}{\left|D_{2}\right|}=\frac{4}{9} \\ &H\left(D_{21}\right)=-\frac{1}{4} \log _{2} \frac{1}{4}-\frac{3}{4} \log _{2} \frac{3}{4}=0.811 \end{aligned} w1=D2D21=94H(D21)=41log24143log243=0.811
​ 中年:
w 2 = ∣ D 21 ∣ ∣ D 2 ∣ = 2 9 H ( D 22 ) = 0 \begin{aligned} &w_{2}=\frac{\left|D_{21}\right|}{\left|D_{2}\right|}=\frac{2}{9} \\ &H\left(D_{22}\right)=0 \end{aligned} w2=D2D21=92H(D22)=0
​ 老年:
w 3 = ∣ D 23 ∣ ∣ D 2 ∣ = 3 9 H ( D 23 ) = − 2 3 log ⁡ 2 2 3 − 1 3 log ⁡ 2 1 3 = 0.918 \begin{aligned} &w_{3}=\frac{\left|D_{23}\right|}{\left|D_{2}\right|}=\frac{3}{9} \\ &H\left(D_{23}\right)=-\frac{2}{3} \log _{2} \frac{2}{3}-\frac{1}{3} \log _{2} \frac{1}{3}=0.918 \end{aligned} w3=D2D23=93H(D23)=32log23231log231=0.918
经验条件熵:
H ( D 2 ∣ A 1 ) = w 1 H ( D 21 ) + w 2 H ( D 22 ) + w 3 H ( D 23 ) = 0.360 + 0 + 0.307 = 0.667 \begin{aligned} H\left(D_{2} \mid A_{1}\right) &=w_{1} H\left(D_{21}\right)+w_{2} H\left(D_{22}\right)+w_{3} H\left(D_{23}\right) \\ &=0.360+0+0.307 \\ &=0.667 \end{aligned} H(D2A1)=w1H(D21)+w2H(D22)+w3H(D23)=0.360+0+0.307=0.667
特征:是否有工作

计算:
有工作:
w 1 = ∣ D 22 ∣ ∣ D 2 ∣ = 3 9 H ( D 22 ) = 0 \begin{aligned} &w_{1}=\frac{\left|D_{22}\right|}{\left|D_{2}\right|}=\frac{3}{9} \\ &H\left(D_{22}\right)=0 \end{aligned} w1=D2D22=93H(D22)=0
​ 没有工作:
w 2 = ∣ D 22 ∣ ∣ D 2 ∣ = 6 9 H ( D 22 ) = 0 \begin{aligned} &w_{2}=\frac{\left|D_{22}\right|}{\left|D_{2}\right|}=\frac{6}{9} \\ &H\left(D_{22}\right)=0 \end{aligned} w2=D2D22=96H(D22)=0
经验条件熵:
H ( D 2 ∣ A 3 ) = w 1 H ( d 21 ) + w 2 H ( D 22 ) = 0 H(D_2|A_3)=w_1H(d_{21})+w_2H(D_{22})=0 H(D2A3)=w1H(d21)+w2H(D22)=0

特征:信贷情况

计算:

非常好:

w 1 = ∣ D 23 ∣ ∣ D 2 ∣ = 1 9 H ( D 23 ) = 0 \begin{aligned} &w_{1}=\frac{\left|D_{23}\right|}{\left|D_{2}\right|}=\frac{1}{9} \\ &H\left(D_{23}\right)=0 \end{aligned} w1=D2D23=91H(D23)=0
​ 好:
w 2 = ∣ D 23 ∣ ∣ D 2 ∣ = 3 9 H ( D 23 ) = − 2 3 log ⁡ 2 2 3 − 1 3 log ⁡ 2 1 3 \begin{aligned} &w_{2}=\frac{\left|D_{23}\right|}{\left|D_{2}\right|}=\frac{3}{9} \\ &H\left(D_{23}\right)=-\frac{2}{3} \log _{2} \frac{2}{3}-\frac{1}{3} \log _{2} \frac{1}{3} \end{aligned} w2=D2D23=93H(D23)=32log23231log231
​ 老年:
w 1 = ∣ D 23 ∣ ∣ D 2 ∣ = 5 9 H ( D 23 ) = − 1 5 log ⁡ 2 1 5 − 4 5 log ⁡ 2 4 5 \begin{aligned} &w_{1}=\frac{\left|D_{23}\right|}{\left|D_{2}\right|}=\frac{5}{9} \\ &H\left(D_{23}\right)=-\frac{1}{5} \log _{2} \frac{1}{5}-\frac{4}{5} \log _{2} \frac{4}{5} \end{aligned} w1=D2D23=95H(D23)=51log25154log254
经验条件熵:
H ( D 2 ∣ A 3 ) = w 1 H ( D 21 ) + w 2 H ( D 22 ) + w 3 H ( D 23 ) = 0.444 \begin{aligned} H\left(D_{2} \mid A_{3}\right) &=w_{1} H\left(D_{21}\right)+w_{2} H\left(D_{22}\right)+w_{3} H\left(D_{23}\right) =0.444 \end{aligned} H(D2A3)=w1H(D21)+w2H(D22)+w3H(D23)=0.444
综合:
比较发现,特征为:是否有工作信息增益最大,所以下一个特征选它。

通过这个例子,整颗决策树只用了两个特征,他们的子集都属于一个类别的,对于有房子都是同意贷款,对于没有房子都是不同意贷款,满足单一叶结点,决策树生成。

猜你喜欢

转载自blog.csdn.net/qq_44795788/article/details/124731658
今日推荐