02-22 决策树C4.5算法

[TOC] 更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:http://www.javashuo.com/article/p-vozphyqp-cm.htmlhtml

决策树C4.5算法

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

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

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

2、决策树C4.5算法详解

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

假设现有一个训练集$D$,特征集$A$,训练集中有$m$个样本,每一个样本有$n$个特征,咱们经过该训练集聊一聊做者对C4.5算法作了哪些改进。数据结构

2.1 连续特征值离散化

ID3算法的第一个缺点:没有考虑到连续值的状况。机器学习

假设现有一个特征$F$的特征值为连续值,从大到小排序为$f_1,f_2,\ldots,f_m$,C4.5算法对相邻样本间的特征值$f_i,f_{i+1}$取平均数,一共能够获得$m-1$个划分点,其中第$j$个划分点能够表示为学习

\[ S_j = {\frac {f_i + f_{i+1}} {2}} \]

对于这$m-1$个划分点,分别计算以该点做为二元分类点的信息增益比,选择信息增益比最大的点做为该连续特征的二元离散分类点,把改点记做$f_t$,则特征值小于$f_t$的点记做$c_1$;特征值大于$f_t$的点记做$c_2$,这样就实现了连续特征值的离散化。优化

2.2 信息增益比

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

信息增益做为标准容易偏向于取值较多的特征,所以可使用信息增益比做为划分节点的标准。信息增益比的概念已经在《熵和信息增益》一文中介绍过,这里只给出公式人工智能

\[ g_R(D,A) = {\frac{g(D,A)}{H_A(D)}} \]

因为特征越多的特征对应的特征熵$H_A(D)$越大,则信息增益比$g_R(D,A)$则会变小,所以能够校订信息增益容易偏向于取值较多的特征的问题。htm

2.3 剪枝

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

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

2.4 特征值加权

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

假设某个特征$F$有2个特征值$f_1,f_2$,先设定缺失$F$特征的样本$D_i$的关于特征$F$的特征值权重都为1,即$f_1$和$f_2$。假设$2$个特征值对应的完好失值的样本个数为$3$和$5$,如今把特征值$f_1,f_2$从新划入样本$D_i$中,在样本$D_i$中$f_1$的权重调节为${\frac{3}{8}}$,$f_2$的权重调节为${\frac{5}{8}}$,即样本$D_i$的特征$F$的特征值为${\frac{3}{8}}*f_1和{\frac{5}{8}}*f_2$。

计算样本$D_i$的特征$F$的信息增益比的时候,及计算${\frac{3}{8}}*f_1$和${\frac{5}{8}}*f_2$的信息增益比。

3、决策树C4.5算法流程

3.1 输入

假设现有一个训练集$D$,特征集$A$,阈值$\epsilon$。

3.2 输出

C4.5算法决策树。

3.3 流程

  1. 初始化信息增益的阈值$\epsilon$
  2. 若是$D$中的全部样本都属于同一类$C_k$,则返回单节点树$T$,标记类别为$C_k$
  3. 若是$A$为空集,则返回单节点树$T$,标记类别为$D$中样本数最大的类$C_k$
  4. 计算$A$中各个特征对输出$D$的信息增益比,选择信息增益比最大的$A_g$
  5. 若是$A_g$小于阈值$\epsilon$,则返回单节点数$T$,标记类别为$D$中样本数最大的类$C_k$
  6. 若是$A_g$大于阈值$\epsilon$,则按照特征$A_g$的不一样取值$A_$把$D$分割成若干个子集$D_i$,每一个子集生成一个子节点,子节点对应特征值为$A_$,递归调用$2-6$步,获得子树$T_i$并返回

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

4.1 优势

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

4.2 缺点

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

5、小结

决策树C4.5算法流程上和决策树ID3算法截然不同,只是在决策树ID3算法上的某一步流程进行了优化,总而言之,它这种处理方式仍是治标不治本的,而且仍是没法处理回归问题。

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

相关文章
相关标签/搜索