二十四.决策树之ID3算法和C4.5算法原理

1.概述

决策树算法主要有两个关键点:

(1).划分依据

当前节点应该用样本的哪个特征进行分裂。

(2)分配准则

子节点中应该包含哪些样本。

2.ID3算法

(1)信息增益

信息增益又叫互信息,它衡量了已知一个变量的情况下,另一个变量不确定性减少的程度:
I ( X , Y ) = − ∑ X , Y P ( X , Y ) log ⁡ P ( X , Y ) P ( X ) P ( Y ) = H ( X ) − H ( X ∣ Y ) = H ( Y ) − H ( Y ∣ X ) \begin{aligned} I(X,Y)&=-\sum_{X,Y}P(X,Y)\log\frac{P(X,Y)}{P(X)P(Y)}\\ &= H(X)-H(X|Y)\\ &=H(Y)-H(Y|X) \end{aligned} I(X,Y)=X,YP(X,Y)logP(X)P(Y)P(X,Y)=H(X)H(XY)=H(Y)H(YX)

(2)ID3算法的流程

ID3算法选择信息增益最大的特征,作为当前节点的分裂依据,具体地说:
a.计算样本集 D D D的信息熵:
H ( D ) = − ∑ C i ∈ C P ( C i ) log ⁡ P ( C i ) = − ∑ C i ∈ C ∣ C i ∣ ∣ D ∣ log ⁡ ∣ C i ∣ ∣ D ∣ \begin{aligned} H(D)&=-\sum_{C_{i}\in C}P(C_{i})\log P(C_{i}) \\ &= -\sum_{C_{i}\in C}\frac{|C_{i}|}{|D|}\log\frac{|C_{i}|}{|D|} \end{aligned} H(D)=CiCP(Ci)logP(Ci)=CiCDCilogDCi
其中, D D D为样本集, ∣ D ∣ |D| D是样本总数; C C C为类别集, C i C_{i} Ci为类别为 C i C_{i} Ci的样本集, ∣ C i ∣ |C_{i}| Ci为该类别样本数。
b.计算样本集 D D D在特征 A A A下的条件熵:
H ( D ∣ A ) = − ∑ A i ∈ A ∣ A i ∣ ∣ D ∣ ∑ A i j ∈ A i ∣ A i j ∣ ∣ A i ∣ log ⁡ ∣ A i j ∣ ∣ A i ∣ H(D|A)=-\sum_{A_{i}\in A}\frac{|A_{i}|}{|D|}\sum_{A_{ij}\in A_{i}}\frac{|A_{ij}|}{|A_{i}|}\log \frac{|A_{ij}|}{|A_{i}|} H(DA)=AiADAiAijAiAiAijlogAiAij
其中, A i A_{i} Ai为特征 A A A的不同取值, A i j A_{ij} Aij为取值为 A i A_{i} Ai的样本的不同类别。
c.计算信息增益:
I ( D , A ) = H ( D ) − H ( D ∣ A ) I(D,A)=H(D)-H(D|A) I(D,A)=H(D)H(DA)
d.计算样本集的所有特征的信息增益,选择增益最大的特征作为分裂依据;被分裂的特征有 n n n个取值,则将样本根据特征的取值划分到 n n n个子节点中。重复以上过程直到最后一个特征。

(3)ID3算法的不足

a.当特征为连续值时,无法处理。
b.取值较多的特征信息增益比较大。
c.无法处理缺失值。
d.无法处理过拟合问题。

3.C4.5算法

针对ID3算法的不足,C4.5算法做了以下改进。

(1)处理连续值

在处理连续值时,C4.5将连续特征离散化,具体做法为:
数据集 D D D的特征 A A A m m m个取值,从小到大排列为:
( A 1 , A 2 , A 3 , . . . , A m ) (A_{1},A_{2},A_{3},...,A_{m}) (A1,A2,A3,...,Am)
划分 m − 1 m-1 m1个取值点:
( T 1 , T 2 , T 3 , . . . , T m − 1 ) (T_{1},T_{2},T_{3},...,T_{m-1}) (T1,T2,T3,...,Tm1)
其中:
T i = A i + A i + 1 2 T_{i}=\frac{A_{i}+A_{i+1}}{2} Ti=2Ai+Ai+1
将特征值小于 T i T_{i} Ti的样本划分到左样本集 D T − D_{T}^{-} DT,特征值大于 T i T_{i} Ti的样本划分到右样本集 D T + D_{T}^{+} DT+,计算其作为二元离散值时的增益比,参与所有特征最大增益比的选择。
需要注意的是,特征 A A A的某一个划分点在本轮分裂时被选择为分裂点,在下一轮特征选择时,特征 A A A的其余的其余划分点会继续参与选择,知道所有划分点选择完毕。

(2)信息增益比

为了解决取值较多的特征信息增益比较大的问题,C4.5将特征选择标准从信息增益改成了信息增益比:
I R ( D , A ) = I ( D , A ) H A ( D ) I_{R}(D,A)=\frac{I(D,A)}{H_{A}(D)} IR(D,A)=HA(D)I(D,A)
其中:
H A ( D ) = ∑ A i ∈ A ∣ A i ∣ ∣ D ∣ log ⁡ ∣ A i ∣ ∣ D ∣ H_{A}(D)=\sum_{A_{i}\in A}\frac{|A_{i}|}{|D|}\log \frac{|A_{i}|}{|D|} HA(D)=AiADAilogDAi
从而使特征较多的信息增益获得相应缩放。

(3)缺失值的处理

缺失值的处理主要面临以下两个问题:
a.选择划分特征时缺失值的处理
对每个样本设置一个权重,样本根据是否有特征 A A A分为两部分。例如, D 1 D_{1} D1为含有特征 A A A的样本集, D 2 D_{2} D2为不含特征 A A A的样本集,赋予它们权值。将加权的 D 2 D_{2} D2数量与加权总样本的比例作为一个系数,乘以 D 1 D_{1} D1的加权增益信息比。
b.划分样本时怎么处理在该特征上有缺失的样本
将缺失特征的样本同时划入所有子节点,根据子节点的样本数量,重新调整缺失特征的样本的系数。

(4)正则化剪枝

a.先剪枝:在生成决策树的过程中,分别计算节点分裂前和分裂后的精度,选择精度较高的方案。
b.后剪枝:决策树生成后,自下向上的去除非子节点,然后计算去除前后的精度,选择精度较高的方案。

(5)C4.5的不足

a.C4.5和ID3算法一样,生成的都是多叉树,效率不如二叉树。
b.只能处理分类,不能处理回归问题。
c.熵的计算需要耗费大量的计算资源。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值