连续值的处理方法
对于连续属性,不能直接根据连续属性的可取值对节点进行划分,可以使用二分法对连续属性进行划分。
划分方法
假设数据集D中的属性a是连续的,那么对于a中的结点,每两个结点取中值作为候选划分点,然后就可以像离散属性值一样处理这些候选划分点。
Gain(D,a,t)=Ent(D)−∑∣D∣∣Dtk∣Ent(Dtk)
计算方法
还是使用西瓜数据集,如下图

数据集中密度和含糖率是连续的值,我们对其进行处理,以密度作为范例进行计算:
首先对密度属性值进行排序
{0.234,0.245,0.343,0.360,0.403,0.437,0.481,0.556,0.593,0.608,0.634,0.639,0.657,0.666,0.697,0.719,0.774}
划分候选点:
{0.244,0.294,0.351,0.381,0.420,0.459,0.518,0.574,0.600,0.621,0.636,0.648,0.661,0.681,0.708,0.746}
对上述候选点分别计算信息熵:
取候选点0.381:
观察数据集,小于0.381的点有4个,大于0.381的点有13个,其中小于0.381的点中没有正例,小于0.381的13个点中有5个正例;
Ent(Dt−)=0;
Ent(Dt+)=−(135log2135+138log2138)=0.961
Gain(D,a)=EntD−∑∣D∣∣Dλ∣Ent(Dλ)=0.998−17130.961=0.264.
对于每一个候选结点都经过上述计算后,得到对应的信息熵,选择信息熵最大的结点作为划分结点对决策树进行划分。
缺失值的处理方法

其中,ρ表示属性D中无缺失值样本所占的比例;pk表示无缺失值样本中第k类所占的比例;rv表示无缺失样本的属性a上av所占的比例。
信息增益的计算
Gain(D,a)=ρ×Gain(D,a)=ρ×(Ent(D)−v=1∑VrvEnt(Dv))
其中
Ent(D)=−k=1∑∣γ∣pklog2pk.
实例计算
还是以西瓜数据集为例

选择色泽这一属性进行信息熵的计算
无缺失值的结点有{2,3,4,6,7,8,9,10,11,12,14,15,16,17},因此ρ=1714;
Ent(D)=−k=1∑2pklog2pk=−(146log2146+148log2148)=0.985.
将色泽青绿记做D1,色泽乌黑记做D2,色泽浅白记做D3;
则
Ent(D1)=−(42log242+42log242)=1.000
Ent(D2)=−(64log264+62log262)=0.918
Ent(D3)=0.000
计算信息增益
Gain(D,色泽)=Ent(D)−∑rvEnt(D)=0.985−(144×1.000+146×0.918+144×0.000)=0.306.
属性色泽的信息增益为
Gain(D,色泽)=ρ×Gain(D,色泽)=1714×0.306=0.252.
其他属性的信息增益也可以使用同样的方法进行计算,最后选择信息增益最大的属性作为划分属性,进而对决策树进行划分。