呆鸟的Python数据分析人工智能/模式识别/机器学习精华专题大数据,机器学习,人工智能

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

2019-08-22  本文已影响27人  皮皮大

信息增益

信息增益

算法思想

信息增益的算法过程为:

栗子
image.png image.png

下面具体解释下针对特征年龄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算法中的信息增益换成了信息增益率

上一篇 下一篇

猜你喜欢

热点阅读