六、连续值、缺失值处理
6.1 连续值
现实学习任务中常常会遇到连续属性,此时可以使用连续属性离散化技术将连续特征转换为离散特征。
最常用的离散化技术为二分法
bi-partition
:给定样本集 和连续属性 ,假设该属性在 中出现了 个不同的取值。
将这些值从小到大进行排列,记作 。
选取 个划分点,依次为: 。
然后就可以像离散属性值一样来考察这些划分点,选取最优的划分点进行样本集和的划分。
这也是
C4.5
算法采取的方案。
事实上划分点的数量可以是任意正整数,划分点的位置也可以采取其它的形式。
事实上,划分点的数量、划分点的位置都是超参数,需要结合验证集、具体问题来具体分析。
6.2 缺失值
现实任务中经常会遇到不完整样本,即样本的某些属性值缺失。
如果简单地放弃不完整样本,仅使用无缺失值的样本来进行学习,则是对数据信息的极大浪费。
这里有两个问题:
- 如何在属性值缺失的情况下选择划分属性?
- 给定划分属性,如果样本在该属性上的值缺失,则如何划分样本?
6.2.1 划分属性选择
给定训练集 和属性 , 令 表示 中在属性 上没有缺失的样本子集。则可以仅根据 来判断属性 的优劣 。
假定属性 有 个可能的取值 。令:
表示: 中在属性 上取值为 的样本的子集
表示: 中属于第 类的样本子集(一共有 个分类)。
根据定义有:
为每个样本 赋予一个权重 ,定义:
其物理意义为:
- 表示:无缺失值样本占总体样本的比例。
- 表示:无缺失值样本中,第 类所占的比例。
- 表示:无缺失值样本中,在属性 上取值为 的样本所占的比例。
将信息增益的计算公式推广为: 。
其中: 。
6.2.2 样本划分
基于权重的样本划分:
如果样本 在划分属性 上的取值已知,则:
- 将 划入与其对应的子结点。
- 的权值在子结点中保持为 。
如果样本 在划分属性 上的取值未知,则:
- 将 同时划入所有的子结点。
- 的权值在所有子结点中进行调整:在属性值为 对应的子结点中,该样本的权值调整为 。
直观地看,基于权重的样本划分就是让同一个样本以不同的概率分散到不同的子结点中去。
- 这一做法依赖于:每个样本拥有一个权重,然后权重在子结点中重新分配。
C4.5
使用了该方案。