1.连续值处理
由于连续属性的可取值数目不再有限,因此,不能直接根据连续属性的可取值来对结点进行划分。此时,连续属性离散化技术可派上用场。
最简单的策略是采用二分法(bi-partition)对连续属性进行处理。
给定样本集D和连续属性a,假定a在D上出现了n个不同的取值,将这些值从小到大进行排序,记为{}.基于划分点t可将D分为子集
和
.
: 包含那些在属性a上取值不大于t的样本。
:包含那些在属性a上取值大于t的样本。
显然,对相邻的属性取值 和
来说,在区间[
,
)中取任意值所产生的划分结果相同。所以把区间 [
,
)的中位点
作为候选划分点。然后,我们就可像离散属性值一样来考察这些划分点,选取最优的划分点进行样本集合的划分。
需要注意的是,与离散属性不同,若当前节点划分属性为连续属性,该属性还可作为其后带节点的划分属性。
2. 缺失值处理
需要解决两个问题:
(1)如何在属性值缺失的情况下进行划分属性选择?
(2)给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?
对于问题(1):给定训练集D和属性a,令 表示D中在属性a上没有缺失值的样本子集。可根据
来判断属性a的优劣。假定属性a有V个可取值{
},令
表示
中在属性a上取值为
的样本子集,
表示
中属于第k类(k=1,2,...,|y|)的样本子集。则有
假定我们为每个样本x赋予一个权重,并定义
其中,表示无缺失值样本所占的比例,
表示无缺失值样本中第k类所占的比例,
表示无缺失值样本中在属性a上取值
的样本所占的比例。
基于上述定义,将信息增益的计算式推广为:
其中,
对问题(2):若样本x在划分属性a上的取值已知,则将x划入其取值对应的子节点,且样本权值在子节点中保持为。若样本x在划分属性a上的取值未知,则将x同时划入所有子节点,且样本权值在属性值
对应的子节点中调整为
;直观地看,这就是让同一样本以不同的概率划入到不同的子节点中去。