ID3是Quinlan于1979年提出的,是机器学习中一种广为人知的一个算法,它的提出开创了决策树算法的先河,而且是国际上最早最有影响的决策树方法
首先找出最有判断力的特征,把数据分成多个子集,每个子集又选择最有判断力的特征进行划分,一直进行到所有的子集包含同一类型的数据为止,最后得到一棵决策树。
一、ID3算法的基本步骤
1)创建一个节点。如果样本都在同一类,则算法停止,把该节点改成树叶节点,并用该类标记。
2)否则,选择一个能够最好的将训练集分类的属性,该属性作为该节点的测试属性。
3)对测试属性中的每一个值,创建相应的一个分支,并据此划分样本。
4)使用同样自顶向下的递归,直到满足下面的三个条件中的一个时,就停止递归
①给定节点的所有样本都属于同一类。
②没有剩余的属性可以用来进一步划分。
③继续划分得到的改进不明显。
二、分支属性的选择方法
在选择根节点和各个内部节点上的分支属性时,采用信息增益作为度量标准,选择具有最高信息增益的描述属性作为分支属性。
目的:使对所划分获得的训练样本子集进行分类所需要信息最小,即利用该属性进行当前(结点所含)样本集合划分,将会使得所有参数的各样本子集中“不同类别混乱程度”降为最低。
采用信息论方法将帮助有效减少对象分类所需要的次数,从而确保所产生的决策树最为简单,尽管不一定是最简单的。
三、信息增益的计算方法
1、熵
热力学中表征物质状态的参量之一,其物理意义是体系混乱程度的度量
信息论之父C.E.Shannon(香农)在1948年借鉴热力学的概念提出了“信息熵”的概念,解决了对信息的量化度量问题。
一条信息包含的信息量大小和它的不确定性有直接的关系,不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。
2、信息增益的计算
信息增益被定义为原始分割的熵与划分以后各分割的熵累加得到的总熵之间的差。即划分前后进行正确预测所需的信息量之差。
设S为s个训练样本数据的集合,类别属性C具有m个不同值,定义m个不同(i=1,2,...,m),
是类
中的样本数。
(1)计算对一个给定的训练样本分类所需要的期望信息,及类别属性C的无条件熵:
其中是任意样本属于
的概率,I(S1,S2,...,Sm)反映了类别属性C取值的不确定性。
(2)计算用属性A把训练样本划分成子集的熵,即类别属性C的条件熵
设属性A具有v个不同值{a1,a2,...,av},则可用属性A将S划分为v个子集{S1,S2,...,Sv},设是子集Sj中类Ci的样本数。
条件熵E(A)表示在已知描述A的情况下,类别属性C对训练数据集S的分类能力。显然,描述属性A会增强类别属性C的分类能力,亦即通过A可以减少C的不确定性。
是
中的样本属于类
的概率
(3)计算由属性A划分的信息增益:
G(A)表示在已知描述属性A的情况下,类别属性C对训练数据S分类能力增加的程度,或者说,G(A)反映属性A减少C不确定性的程度,G(A)越大,A对减少C不确定性的贡献越大,或者说选择测试属性A对分类提供的信息越多。
例如,假设有番茄、茄子、黄瓜三种蔬菜,现在对某蔬菜分类。给定蔬菜数据表“颜色”、“形状”是描述属性,“蔬菜”是类标属性。
不给任何描述时,蔬菜可能是番茄、茄子、黄瓜三种之一,不确定性大。
给出蔬菜是“长的”形状描述时,不确定性减少。
给出蔬菜是“紫的”颜色描述时,该蔬菜只可能是茄子了,不确定性为零。