决策树是一种贪心算法,每次选取的分割数据的特征都是当前的最佳选择,并不关心是否达到最优。
ID3使用信息增益作为属性选择度量,选择具有最高信息增益的属性A作为节点N的分裂属性。
对D中的元组分类所需要的期望信息(熵): 是任意元组属于类Ci 的概率。熵越小,说明样本集合D的纯度越高。
按某个属性A划分对D的元组分类所需要的期望信息:
信息增益:Gain(A)= -
一般来说,信息增益越大,说明如果用属性a来划分样本集合D,那么纯度会提升,因为我们分别对样本的所有属性计算增益情况,选择最大的来作为决策树的一个节点。
ID3决策树的缺点在于,当一个属性的可取值数目较多时,那么可能在这个属性值对应的可取值下的样本只有一个或多个,那么这个时候它的信息增益是非常高的,这个时候纯度很高,ID3决策树会认为这个属性很适合划分,但是较多取值的属性来进行划分带来的问题是它的泛化能力比较弱,不能对新样本进行有效的预测。ID3不能处理特征值为连续的情况。
作为ID3的改进,C4.5使用一种称为增益率的信息增益扩充。
增益率的本质是在信息增益的基础上乘一个惩罚函数。特征取值个数较多时,SplitInfo较大,则增益率较小。特征取值较少时,SplitInfo较小,则增益率较大。也就是说增益率对可取值数目较少的属性有所偏好。
分裂信息:
增益率为:
需要注意的是,C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
相比ID3算法改进:
- 使用信息增益率作为分裂标准
- 处理含有缺失值的样本方法为将这些值并入最常见的某一类或以最常见的值代替
- 处理连续值属性
但是C4.5倾向于产生不平衡的划分,其中一个分区比其他分区小得多。