决策树之ID3算法概述:
工作原理: 得到原始数据集,然后基于最好的属性值划分数据集,由于特征值可能多于两个,因此可能存在大于两个分支的数据集划分。第一次划分之后,数据被向下传递到树分支的下一个节点,在这个节点上,我们可以再次划分数据,因此,我们可以采用递归的原则处理数据集。
递归结束的条件是:
- 程序遍历完所有划分数据集的属性。
- 每个分支下的所有实例都具有相同的分类。
算法流程:
决策树学习算法包含特征选择、决策树的生成、决策树的剪枝。
特征选择
特征选择在于选取对训练数据具有分类能力的特征。这样可以提高决策树学习的效率。通常特征选择的准则是信息增益或信息增益比。信息增益
在划分数据集之前之后信息发生的变化称为信息增益。计算信息增益,我们就可以计算每个特征值划分数据集获得的信息增益,获得信息增益最高的特征就是最好的选择。
集合信息的度量方式称为香农熵或者简称为熵。
熵定义为信息的期望值。
如果待分类的事务可能划分在多个分类之中,则符号 xi 的信息定义为:l(xi)=−log2p(xi)
其中, p(xi) 是选择该分类的概率。
为了计算熵,需要计算所有类别可能值包含的信息期望值,通过下面的公式得到:H=−∑i=1np(xi)log2p(xi)
其中,n是分类的数目。
信息增益:表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即g(D,A)=H(D)−H(D|A)
一般,熵H(Y)与条件熵H(Y|X)之差称为互信息。决策树学习中的信息增益等价于训练数据集中类与特征的互信息。
另一个度量集合无序程度的方法是基尼不纯度,简单的说就是从一个数据集中随机选取子项,度量其被错误分类到其他分组里的概率。
基尼指数总体内包含的类别越杂乱,基尼指数也就越大(跟熵的概念很相似)。决策树剪枝
决策树生成算法递归的产生决策树,直到不能继续下去为止。这样产生的树往往对训练数据的分类很准确,但对未知的测试数据的分类却没有那么准确,即出现过拟合现象。
在决策学习中将已经生成的树进行简化的过程称为剪枝。
剪枝:从已生成的树上裁掉一些子树或叶节点,并将其根节点或父节点作为新的叶节点,从而简化分类树模型。
决策树的剪枝往往通过极小化决策树整体的损失函数或代价函数来实现。利用损失函数最小原则进行剪枝就是用正则化的极大似然估计进行模型选择。
优缺点及适用范围:
优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。
缺点:可能会产生过度匹配问题。
适用数据类型:数值型和标称型。