ID3
基于信息增益(Information Gain)的ID3算法
ID3算法的核心是在各个结点上应用信息增益准则来进行特征选择,以此递归的构建决策树,具体方法是:从根结点开始,对结点计算所有可能的信息增益,选择信息增益最大的特征作为该结点的特征,结点的信息增益根据样本的标签进行计算。
信息增益
熵
信息增益与熵(entropy)有关,在概率论中,熵是随机变量不确定性的度量,熵越大,随机变量的不确定性就越大;假设是取有限个值的离散随机变量,其概率分布为:
则,熵的定义为:
一般取自然对数为底数
值得注意的是,熵实际上是随机变量的分布的泛函数,它并不依赖的实际取值,而仅仅依赖的概率分布,所以它又可以被记作:
其中, 表示的种不同的取值, 这个值一般是离散的. 表示为取到值为的概率.一般是自然底数
例子:
条件熵
多个变量的熵叫联合熵, 比如两个变量的联合熵就表示为:
类似于条件概率,熵同样也存在着条件熵, 条件熵描述了知道某个变量以后, 剩下的变量的不确定性, 其表达式如下:
信息增益
度量了的不确定性, 度量了知道后,的不确定性, 那么度量的可以理解为:知道的基础上, 不确定性减少的程度,我们记为,如图:
更多理解
假定当前样本集合中,第类样本所占比例为, 则的信息熵定义为:
假定离散属性有个可能的取值, 若使用来对样本集进行划分,则会产生个分支结点, 也就是说, ID3构建的决策树, 是多叉树, 那么它的信息增益就是
比如: 一个二分类数据集, 包含17个样本, 其中正例为8,反例为9,那么, 数据集的信息熵为:
对于变量,他有三个取值, 那么它可以将数据集划分为三个子集: , 其样本里分别为6,6,5, 这三个自数据集中, 正负样本分别为(3,3) (4,2),(1,4), 这三个分支结点的信息熵为为:
那么变量的信息增益为:
ID3 步骤
ID3使用信息增益来决策当前树结点该使用那个变量来构建决策树, 显然,信息增益越大的, 就越能更有效的区分特征(变量)与预测标签之间的关系.
输入个样本,每个样本有个离散的特征,令特征集合为,输出决策树
- 判断样本是否为同一类别, 如果是, 则返回树T
- 判断特征是否为空, 是, 则返回树T
- 计算A中, 各个特征的信息增益,选择最大的信息增益特征,记为
- 按特征的不同取值, 将对应的样本分成不同类别,每个类别产生一个子结点,对应的特征值为
- 重复上述步骤直到结束
ID3算法的缺点
- 无法处理连续的特征
- 采用信息增益更大的特征优先建立决策树, 但相同的数据集下, 取值较多的特征值比取值较少的特征值信息增益更大
- 没有考虑缺失值
- 过拟合问题