主要内容
(1)ID3算法简介
(2)ID3算法节点分裂规则
(3)ID3算法实例
(4)剪枝
-------------------------------------------------------------------------------------------------------------------------
一、简介
1、信息熵Entropy
其中为第i个类别的概率,S是样例集合
信息熵越大,样本越混乱;信息熵越小,样本越纯净。
2、期望信息
设特征A具有v个不同的类别,其样本个数分别记为
E(A)特征A的期望信息,为特征A的第j个类别的数量占特征A所有类别的概率,
为特征A下第j个类别中占样例集合S不同类别的概率
3、信息增益
为特征A的信息增益
信息熵越小,信息增益越大,样本越纯净
选择信息增益最大的特征作为分裂标准
二、实例
1、样本(特征必须离散变量,支持多特征、多分类)
1024个样本,4个特征,2个分类
计数 | 年龄 | 收入 | 学生 | 信誉 | 是否购买 |
64 | 青 | 高 | 否 | 良 | 否 |
64 | 青 | 高 | 否 | 优 | 否 |
128 | 中 | 高 | 否 | 良 | 买 |
60 | 老 | 中 | 否 | 良 | 买 |
64 | 老 | 低 | 是 | 良 | 买 |
64 | 老 | 低 | 是 | 优 | 否 |
64 | 中 | 低 | 是 | 优 | 买 |
128 | 青 | 中 | 否 | 良 | 否 |
64 | 青 | 低 | 是 | 良 | 买 |
132 | 老 | 中 | 是 | 良 | 买 |
64 | 青 | 中 | 是 | 优 | 买 |
32 | 中 | 中 | 否 | 优 | 买 |
32 | 中 | 高 | 是 | 良 | 买 |
64 | 老 | 中 | 否 | 优 | 否 |
2、计算信息熵
3、计算特征A的信息熵
假设以年龄为例:
分为青年:384/0.375(样本/概率)、中年:256/0.25(样本/概率)、老年:384/0.375(样本/概率)
以年龄为特征的熵为:
青年:128/256(买/不买),概率为1/3和2/3(买/不买)
中年:256/0(买/不买),概率为1和0(买/不买)
老年:256/128(买/不买),概率为2/3和1/3(买/不买)
故得到以年龄为特征的熵(平均信息期望/条件熵)为
年龄特征的信息增益为:
同理可得
收入:
学生:
信誉:
可以看出,‘年龄’的信息增益最大,因此选择‘年龄’作为节点来划分。
按此方法,直至叶节点为’纯‘的结束。
三、剪枝
树的剪枝包括预剪枝和后剪枝,通过提前停止树的构造进行剪枝的方法称为预剪枝,后剪枝是首先构造完整的决策树,然后把置信度不够节点子树替代为叶子节点的过程。
预剪枝判断停止树的生长可以归纳为以下几种:
1、树的高度限制:设定树的高度最大值,当达到限定值时,停止树的生长;
2、训练样本限制:对一个拥有较少训练样本的节点进行分裂时容易出现过拟合现象,因此设定样本量阀值,当样本量少于阀值时停止生长;
3、系统性能增益:当属性的信息增益小于某个指定的阀值时停止增长。
相对而言预剪枝比较简单,在实际的运用中运用最广的还是后剪枝。
后剪枝算法主要有以下几类:
1、降低错误剪枝REP(Reduced Error Pruning);
2、悲观错误剪枝PER(Pessimistic Error Pruning);
3、基于错误剪枝EBP(Error-Based Pruning);
4、代价-复杂度剪枝CCP(Cost-Complexity Pruning);
5、最小错误剪枝MEP(Minimun Error Pruning)
以上算法的理论介绍详见:
http://wenku.baidu.com/view/415c3cc19ec3d5bbfd0a7464.html?re=view
四、总结
1、ID3算法的流程
(1)自上而下贪婪搜索
(2)遍历所有的属性,按照信息增益最大的属性进行分裂
(3)根据分裂属性划分样本
(4)重复上述流程,直至满足条件结束
2、ID3算法的特点
(1)上述过程可以看出,ID3算法倾向于选择属性值较多的属性,有些时候不能提供有价值的信息
(2)贪婪性以及奥姆剃刀原理(尽量用较少的东西做更多的事)
(3)不适用于连续变量
(4)只能用于分类
注:以上内容属个人理解,学艺不精,请各位大神多多指教