码迷,mamicode.com
首页 > 编程语言 > 详细

C4.5算法

时间:2015-11-19 18:59:33      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:

一,C4.5算法是基于ID3算法的改进(优点)

  • 对连续的数据也能处理
  • 可以在决策树构造过程中进行剪枝,因为某些具有很少元素的结点可能会使构造的决策树过拟合(Overfitting),如果不考虑这些结点可能会更好
  • 能够对不完整数据进行处理。
  • 信息增益率来进行属性选择的度

二,算法流程

技术分享

三,属性选择度量(和ID3对比)

    属性选择度量又称分裂规则,因为它们决定给定节点上的元组如何分裂。属性选择度量提供了每个属性描述给定训练元组的秩评定,具有最好度量得分的属性被选作给定元组的分裂属性。目前比较流行的属性选择度量有--信息增益、增益率。 先做一些假设,设D是类标记元组训练集,类标号属性具有m个不同值,m个不同类Ci(i=1,2,…,m),CiD是D中Ci类的元组的集合,|D|和|CiD|分别是D和CiD中的元组个数。

  •   信息增益

      信息增益实际上是ID3算法中用来进行属性选择度量的。它选择具有最高信息增益的属性来作为节点N的分裂属性。该属性使结果划分中的元组分类所需信息量最小。对D中的元组分类所需的期望信息为下式:

    技术分享 (1)

   Info(D)又称为熵。

    现在假定按照属性A划分D中的元组,且属性A将D划分成v个不同的类。在该划分之后,为了得到准确的分类还需要的信息由下面的式子度量(条件熵):

   技术分享       (2)

    信息增益定义为原来的信息需求(即仅基于类比例)与新需求(即对A划分之后得到的)之间的差,即

   技术分享       (3)

  •   信息增益率

   正是基于此,ID3后面的C4.5采用了信息增益率这样一个概念。信息增益率使用“分裂信息”值将信息增益规范化。分类信息类似于Info(D),定义如下:

  技术分享    (4)

这个值表示通过将训练数据集D划分成对应于属性A测试的v个输出的v个划分产生的信息。信息增益率定义:

 技术分享         (5)

选择具有最大增益率的属性作为分裂属性。

四,树剪枝

  在决策树的构建的过程中,由于数据中的噪声和离群点,许多分枝反映的是训练数据中的异常。剪枝方法是用来处理这种过分拟合数据的问题。通常剪枝方法都是使用统计度量,剪去最不可靠的分枝。

  • 先剪枝:

    1. 当决策树达到一定的高度就停止决策树的生长;
    2. 到达此节点的实例具有相同的特征向量,而不必一定属于同一类,也可以停止生长
    3. 到达此节点的实例个数小于某个阈值的时候也可以停止树的生长,不足之处是不能处理那些数据量比较小的特殊情况
    4. 计算每次扩展对系统性能的增益,如果小于某个阈值就可以让它停止生长。先剪枝有个缺点就是视野效果问题,也就是说在相同的标准下,也许当前扩展不能满足要求,但更进一步扩展又能满足要求。这样会过早停止决策树的生长。
  • 后剪枝:

    1. 它由完全成长的树剪去子树而形成。通过删除节点的分枝并用树叶来替换它。树叶一般用子树中最频繁的类别来标记

五,具体举例

http://wenku.baidu.com/link?url=RojimcYAVhxUJnAvn6K7EpBWQkm2ZA_KGcZhfcjmpHSk4vWE6JSDqKu_PdKjL7DhNeM1925F9Yh0TgjI-82Rh2YAsIUeOD11vMzsVmCwG4_

C4.5算法

标签:

原文地址:http://www.cnblogs.com/dmir/p/4978192.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!