六、连续值、缺失值处理

6.1 连续值

  1. 现实学习任务中常常会遇到连续属性,此时可以使用连续属性离散化技术将连续特征转换为离散特征。

  2. 最常用的离散化技术为二分法bi-partition

    给定样本集 六、连续值、缺失值处理 - 图1 和连续属性 六、连续值、缺失值处理 - 图2,假设该属性在 六、连续值、缺失值处理 - 图3 中出现了 六、连续值、缺失值处理 - 图4 个不同的取值。

    • 将这些值从小到大进行排列,记作 六、连续值、缺失值处理 - 图5

    • 选取 六、连续值、缺失值处理 - 图6 个划分点,依次为:六、连续值、缺失值处理 - 图7

    • 然后就可以像离散属性值一样来考察这些划分点,选取最优的划分点进行样本集和的划分。

      这也是 C4.5 算法采取的方案。

  3. 事实上划分点的数量可以是任意正整数,划分点的位置也可以采取其它的形式。

    事实上,划分点的数量、划分点的位置都是超参数,需要结合验证集、具体问题来具体分析。

6.2 缺失值

  1. 现实任务中经常会遇到不完整样本,即样本的某些属性值缺失。

    如果简单地放弃不完整样本,仅使用无缺失值的样本来进行学习,则是对数据信息的极大浪费。

  2. 这里有两个问题:

    • 如何在属性值缺失的情况下选择划分属性?
    • 给定划分属性,如果样本在该属性上的值缺失,则如何划分样本?

6.2.1 划分属性选择

  1. 给定训练集 六、连续值、缺失值处理 - 图8 和属性 六、连续值、缺失值处理 - 图9, 令 六、连续值、缺失值处理 - 图10 表示 六、连续值、缺失值处理 - 图11 中在属性 六、连续值、缺失值处理 - 图12 上没有缺失的样本子集。则可以仅根据 六、连续值、缺失值处理 - 图13 来判断属性 六、连续值、缺失值处理 - 图14 的优劣 。

  2. 假定属性 六、连续值、缺失值处理 - 图15六、连续值、缺失值处理 - 图16 个可能的取值 六、连续值、缺失值处理 - 图17。令:

    • 六、连续值、缺失值处理 - 图18 表示: 六、连续值、缺失值处理 - 图19 中在属性 六、连续值、缺失值处理 - 图20 上取值为 六、连续值、缺失值处理 - 图21 的样本的子集

    • 六、连续值、缺失值处理 - 图22 表示: 六、连续值、缺失值处理 - 图23 中属于第 六、连续值、缺失值处理 - 图24 类的样本子集(一共有 六、连续值、缺失值处理 - 图25 个分类)。

      根据定义有:六、连续值、缺失值处理 - 图26

  3. 为每个样本 六、连续值、缺失值处理 - 图27 赋予一个权重 六、连续值、缺失值处理 - 图28,定义:

    六、连续值、缺失值处理 - 图29

    其物理意义为:

    • 六、连续值、缺失值处理 - 图30 表示:无缺失值样本占总体样本的比例。
    • 六、连续值、缺失值处理 - 图31 表示:无缺失值样本中,第 六、连续值、缺失值处理 - 图32 类所占的比例。
    • 六、连续值、缺失值处理 - 图33 表示:无缺失值样本中,在属性 六、连续值、缺失值处理 - 图34 上取值为 六、连续值、缺失值处理 - 图35 的样本所占的比例。
  4. 将信息增益的计算公式推广为:六、连续值、缺失值处理 - 图36

    其中:六、连续值、缺失值处理 - 图37

6.2.2 样本划分

  1. 基于权重的样本划分:

    • 如果样本 六、连续值、缺失值处理 - 图38 在划分属性 六、连续值、缺失值处理 - 图39 上的取值已知,则:

      • 六、连续值、缺失值处理 - 图40 划入与其对应的子结点。
      • 六、连续值、缺失值处理 - 图41 的权值在子结点中保持为 六、连续值、缺失值处理 - 图42
    • 如果样本 六、连续值、缺失值处理 - 图43 在划分属性 六、连续值、缺失值处理 - 图44 上的取值未知,则:

      • 六、连续值、缺失值处理 - 图45 同时划入所有的子结点。
      • 六、连续值、缺失值处理 - 图46 的权值在所有子结点中进行调整:在属性值为 六、连续值、缺失值处理 - 图47 对应的子结点中,该样本的权值调整为 六、连续值、缺失值处理 - 图48
  2. 直观地看,基于权重的样本划分就是让同一个样本以不同的概率分散到不同的子结点中去。

    • 这一做法依赖于:每个样本拥有一个权重,然后权重在子结点中重新分配。
    • C4.5使用了该方案。