决策树算法:决策树是对数据进行分类,以此达到预测的目的。该决策树方法先根据训练集数据形成决策树,如果该树不能对所有对象给出正确的分类,那么选择一些例外加入到训练集数据中,重复该过程一直到形成正确的决策集。决策树代表着决策集的树形结构。决策树由决策结点、分支和叶子组成。决策树中最上面的结点为根结点,每个分支是一个新的决策结点,或者是树的叶子。每个决策结点代表一个问题或决策,通常 对应于待分类对象的属性。每一个叶子结点代表一种可能的分类结果。沿决策树从上到下遍历的过程中,在每个结点都会遇到一个测试,对每个结点上问题的不同的测试输出导致不同的分支,最后会到达一个叶子结点,这个过程就是利用决策树进行分类的过程,利用若干个变量来判断所属的类别。
ID3 (Iterative Dichotomiser 3) 是由Ross Quinlan提出的分类预测算法;用以给一个数据集创建决策树。该算法是以信息论为基础,以信息熵和信息增益为衡量标准,从而实现对数据的归纳分类。
预备知识
信息的定量描述:衡量信息多少的物理量称为信息量。
- 若概率很大,受信者事先已有所估计,则该消息信息量就很小;
- 若概率很小,受信者感觉很突然,该消息所含信息量就很大。
信息量的定义:若一个消息x出现的概率为p,则这一消息所含的信息量为: I=−log2p 其中,对数的底大于1。以2为底时,单位为 bit(binary unit,比特)
例如:抛一枚均匀硬币,出现正面与反面的信息量是多少?
出现正面与反面的概率均为0. 5,故, I(正)=−log212=1b 。当然, I(反)=−log212=1b信源含有的信息量是信源发出的所有可能消息的平均不确定性,香农把信源所含有的信息量称为信息熵(entropy)。是指每个属性所含信息量的统计平均值。m种属性的平均信息量为:
H(x)=∑mi=0p(xi)I(xi)=−∑mi=0p(xi)log2p(xi)例如:抛一枚均匀硬币的信息熵是多少? H(x)=−∑2i=1p(xi)log2p(xi)=−(0.5log212+0.5log212)=1b
当 H(x)=0 意味着数据集 X 被完美的分类了(即所有元素都属于同一类别)。ID3会为每一个属性计算信息熵,具有最小信息熵的属性在本次迭代中用来划分数据集X 。条件自信息量:
在事件 yj 出现的条件下,随机事件 xi 发生的条件概率为 p(xi|yj) ,则它的条件自信息量定义为条件概率对数的负值: I(xi|yj)=−log2p(