决策树C4.5算法

02-22 决策树C4.5算法

  为了解决决策树ID3算法的不足,ID3算法的作者昆兰基于它的不足改进了决策树ID3算法。但是可能会有人有疑问,既然上一个决策树算法叫做ID3算法,为什么改进版本不叫做ID4或者ID5呢?因为当时决策树过于火爆,有人二次创新把ID4、ID5都用掉了,由此作者另辟蹊径把ID3算法的改进版本称为C4算法,后来C4算法又一次升级便有了现在的C4.5算法。

决策树C4.5算法学习目标

  1. 使用C4.5算法对连续特征值离散化
  2. 信息增益比
  3. 使用C4.5算法对特征值加权
  4. 决策树C4.5算法步骤
  5. 决策树C4.5算法优缺点

决策树C4.5算法详解

  上一次说到决策树ID3算法有4个缺点,而这次作者也是基于这4个缺点改进了算法,也就是现在的C4.5算法。

  假设现有一个训练集DD,特征集AA,训练集中有mm个样本,每个样本有nn个特征,我们通过该训练集聊一聊作者对C4.5算法做了哪些改进。

连续特征值离散化

  ID3算法的第一个缺点:没有考虑到连续值的情况。

  假设现有一个特征FF的特征值为连续值,从大到小排序为f1,f2,,fmf_1,f_2,\ldots,f_m,C4.5算法对相邻样本间的特征值fi,fi+1f_i,f_{i+1}取平均数,一共可以得到m1m-1个划分点,其中第jj个划分点可以表示为
Sj=fi+fi+12 S_j = {\frac {f_i + f_{i+1}} {2}}
对于这m1m-1个划分点,分别计算以该点作为二元分类点的信息增益比,选择信息增益比最大的点作为该连续特征的二元离散分类点,把改点记作ftf_t,则特征值小于ftf_t的点记作c1c_1;特征值大于ftf_t的点记作c2c_2,这样就实现了连续特征值的离散化。

信息增益比

  ID3算法的第二个缺点:以信息增益作为划分训练数据集的特征,存在于偏向于选择取值较多的特征的问题。

  信息增益作为标准容易偏向于取值较多的特征,因此可以使用信息增益比作为划分节点的标准。信息增益比的概念已经在《熵和信息增益》一文中介绍过,这里只给出公式
gR(D,A)=g(D,A)HA(D) g_R(D,A) = {\frac{g(D,A)}{H_A(D)}}
  由于特征越多的特征对应的特征熵HA(D)H_A(D)越大,则信息增益比gR(D,A)g_R(D,A)则会变小,因此可以校正信息增益容易偏向于取值较多的特征的问题。

剪枝

  ID3算法的第三个缺点:没有考虑过拟合问题。

  决策树一般采用剪枝的方法解决过拟合问题,剪枝的具体思路将在CART树一文中细讲。

特征值加权

  ID3算法的第四个缺点:没有考虑特征中含有缺失值的情况。

  假设某个特征FF有2个特征值f1,f2f_1,f_2,先设定缺失FF特征的样本DiD_i的关于特征FF的特征值权重都为1,即f1f_1f2f_2。假设22个特征值对应的无缺失值的样本个数为3355,现在把特征值f1,f2f_1,f_2重新划入样本DiD_i中,在样本DiD_if1f_1的权重调节为38{\frac{3}{8}}f2f_2的权重调节为58{\frac{5}{8}},即样本DiD_i的特征FF的特征值为38f158f2{\frac{3}{8}}*f_1和{\frac{5}{8}}*f_2

  计算样本DiD_i的特征FF的信息增益比的时候,及计算38f1{\frac{3}{8}}*f_158f2{\frac{5}{8}}*f_2的信息增益比。

决策树C4.5算法流程

输入

  假设现有一个训练集DD,特征集AA,阈值ϵ\epsilon

输出

  C4.5算法决策树。

流程

  1. 初始化信息增益的阈值ϵ\epsilon
  2. 如果DD中的所有样本都属于同一类CkC_k,则返回单节点树TT,标记类别为CkC_k
  3. 如果AA为空集,则返回单节点树TT,标记类别为DD中样本数最大的类CkC_k
  4. 计算AA中各个特征对输出DD信息增益比,选择信息增益比最大的AgA_g
  5. 如果AgA_g小于阈值ϵ\epsilon,则返回单节点数TT,标记类别为DD中样本数最大的类CkC_k
  6. 如果AgA_g大于阈值ϵ\epsilon,则按照特征AgA_g的不同取值AgiA_{g_i}DD分割成若干个子集DiD_i,每个子集生成一个子节点,子节点对应特征值为AgiA_{g_i},递归调用262-6步,得到子树TiT_i并返回

决策树C4.5算法的优缺点

优点

  1. 理论清晰,方法简单
  2. 学习能力强

缺点

  1. 只能用于分类
  2. C4.5算法由于使用了熵的概念,即决策树的生成需要大量的熵值计算,并且如果特征值为连续值,还需要进行排序运算
  3. 使用模型较为复杂的多叉树结构

小结

  决策树C4.5算法流程上和决策树ID3算法大相径庭,只是在决策树ID3算法上的某一步流程进行了优化,总而言之,它这种处理方式还是治标不治本的,并且还是无法处理回归问题。

  接下来我们将要将一个改革意义的决策树,目前scikit-learn算法中以及集成学习中都使用该树作为目标决策树,即决策树CART算法。

02-22 决策树C4.5算法

相关文章:

  • 2021-12-26
  • 2021-10-24
  • 2021-05-14
  • 2021-07-10
  • 2021-12-02
  • 2022-02-04
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-12
  • 2021-06-04
  • 2021-10-30
  • 2021-06-14
  • 2021-09-06
  • 2022-12-23
相关资源
相似解决方案