机器学习算法——决策树3(信息增益和ID3算法)

信息增益

信息增益

算法思想

信息增益的算法过程为:

  • 出入:训练数据集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)

栗子
image.png
image.png

下面具体解释下针对特征年龄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算法相当于是利用极大似然法进行概率模型的选择。算法利用互信息或者信息增益作为特征选取的标准,倾向于选择特征取值较多的特征,这样能将训练数据集分成很多份,不确定性自然减少,这样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算法中的信息增益换成了信息增益率

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容