机器学习札记14——决策树3(信息增益和ID3)

浏览: 2043

信息增益

算法思想

信息增益的算法过程为:

  • 出入:训练数据集D和特征A
  • 输出:特征A对训练数据集D的信息增益g(D,A)
    具体过程解释为:
    • 先计算数据集D的经验熵H(D)
      H(D)=- \sum _{k=1}^{K} \frac{|C_k|}{|D|} \sum _{k=1}^{K} \frac{|D_{ik}|}{|D_i|}log_2 \frac {|D_{ik}|}{|D_i|}
      上式表示为:样本中每个类的在总样本的占比,然后求出经验熵H(D)

    • 计算特征A对数据集D的经验条件熵H(D|A):表示在特征A的条件下,数据集D的条件熵
      H(D|A)=\sum _{i=1}^{n}\frac{|D_i|}{|D|}H(D_i)=-\sum _{i=1}^{n}\frac{|D_i|}{|D|} \sum _{k=1}^{K} \frac{|D_{ik}|}{|D_i|}log_2 \frac{|D_{ik}|}{|D_i|}

    • 计算信息增益:g(D,A)=H(D)-H(D|A)

栗子

下面具体解释下针对特征年龄A_1的信息增益的计算过程

  • 计算经验熵:
    • 原始数据中,输出类别分为是与否,二者比例为9:6
    • 根据经验熵的公式得出数据集D的经验熵为H(D)=-\frac {9}{15}log_2 \frac {9}{15} - \frac {6}{15}log_2\frac {6}{15}
  • 计算经验条件熵:
    • 年龄有三个类别:青年、中年、老年,比例为5:5:5
    • 根据表格中年龄属性的3个特征,青年、中年、老年:
      • 青年:是:否=2:3
      • 中年:是:否=3:2
      • 老年:是:否=4:1
        计算出以年龄为条件的,H(D|A_1)
  • 将经验熵减去经验条件熵,便可以得到信息增益information gaing_(D,A_1)=H(D)-H(D|A_1)

信息增益率

以信息增益作为划分训练数据集的特征,存在一个问题:分类结果偏向于选择取值较多的特征。利用信息增益率可以校正这个问题。信息增益率定义为:

特征A对训练数据集D的信息增益比为g_R{(D,A)},定义为其信息增益g{(D,A)}与训练数据集D关于特征A的值的熵H_A{(D)}之比,即g_R(D,A)=\frac {g(D,A)}{H_A(D)}其中,H_A{(D)}=- \sum _{i=1}^{n}\frac{|D_i|}{|D|}log_2 \frac {|D_i|}{|D|},n是特征A取值的个数。

ID3算法

算法简述

ID3CART算法是决策树中的经典算法。在本篇札记中主要讲解ID3算法。

ID3算法的核心是在决策树的各个节点上利用信息增益来进行特征的选择,通过递归方法构建决策树。

  • 从根节点开始,对节点计算所有可能的特征的信息增益:计算所有的特征的信息增益
  • 选择信息增益最大的特征作为节点的特征,构建子节点
  • 对子节点递归调用上述方法,构建决策树。
  • 直到所有特征的信息增益均很小或者没有特征可以选择

ID3算法相当于是利用极大似然法进行概率模型的选择

算法步骤

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

  1. 如果训练数据集中的实例全部属于同一个类C_k,则T为单节点树,并且将C_k作为实例的类进行输出。
  2. 若A为空集,则T为单节点树,并将D中实例最大的类C_k作为节点的类进行输出
  3. 不满足上述两种情况,计算A中各个特征对D的信息增益,选择信息增益最大的特征A_g
  4. 如果A_g的信息增益小于阈值\sigma,返回单节点树T
  5. 否则,对于A_g中的每个取值a_i,依A_g=a_i,将数据集D分割为若干个子集D_i,将D_i中实例最大的类作为标记,构建子节点,由节点及其子节点构成树T,返回T
  6. 对于第i个子节点,以D_i为训练集,以A-\{A_g\}为特征集,递归地调用上述步骤,得到子树T_i,返回T_i

注意

  • 先计算每个特征的经验熵,取其中最大者作为根节点的特征;将数据集划分为多个子集
  • 如果子集中全部为一个类,当作叶结点;如果子集中类存在多个节点,继续利用剩下的特征进行划分
  • 在剩下的数据和剩下的特征利用信息增益继续划分,直至结束

C4.5算法的不同之处在于将ID3算法中的信息增益换成了信息增益率

推荐 0
本文由 皮大大 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册