决策树的剪枝、连续与缺失

剪枝处理

       剪枝是决策树学习算法对付“过拟合”的主要手段。剪枝的基本策略有预剪枝和后剪枝两种。预剪枝是指在决策树生成过程中,对每个节点在划分前先进行估计,若当前节点的划分不能带来决策树的泛化性能提升,则停止划分并将当前节点标记为叶节点。后剪枝则是在构建完一棵完整的决策树后,自下而上的对每个非叶节点进行考察将该节点变换为叶节点能否带来性能的提升。--(利用测试集来判断泛化性能)

        一般情况下,后剪枝比预剪枝保留了更多的分支,欠拟合风险很小,并能带来更好的泛化效果。但是后剪枝是在完全生成后进行的,并且是自下而上进行,所以时间开销会大得多。

连续值

        当属性不是离散值而是连续值时,就需要采用连续属性离散化技术来处理。其中,二分法是最简单的策略。给定样本集合 D 和连续属性 a ,假定 a 在 D 上出现了 n 个不同的取值,将这些值从大到小排序,基于划分点t可将 D 分为 D+ 和 D- 两个子集。其中 D- 指的是不大于 t 的样本,D+ 是大于 t 的样本。显然对相邻的取值而言,t 在两者之间取任意值的结果都是一样的。则对于连续属性 a ,我们可以有 n-1 的候选的划分点。

划分点考察

        然后我们可以利用选择最优属性的原理选出最优的划分点进行样本集合的划分。


最优划分点的选取

缺失值

        现实任务中常会遇到不完整样本,即样本的某些属性缺失。如何使用缺失的属性值的训练样例来进行学习?1.如何在属性值缺失的情况下进行划分属性选择?2.给定了划分属性,若该样本在该属性上的值缺失,如何对样本进行划分?

        对于问题1,显然我们只能用完整的样本来决定划分属性。我们为每个样本 x 赋予一个权重 Wx,则定义(式中 k 指的类别, v 指的属性取值)

    直观的看,p指的是第k类中无缺失样本所占的比例。gamma指的是无缺失值样本在属性a上取值为v的样本所占的比例。基于上述定义,推广信息增益的计算公式

        对于问题2,若样本在划分属性a上的取值已知,则将x划入与其对应的子节点,且权重任为Wx。假如在a上的取值未知,则将 x 划入所有的子节点,但同时要调整样本权值,变为gamma_v *Wx。

你可能感兴趣的:(决策树的剪枝、连续与缺失)