第10章-基于树的方法(2)-树的剪枝
副标题[/!--empirenews.page--]
10.8 通过剪枝得到最优规模的树之前我们讨论的都是如何生成树,接下来我们要讲解的是如何进行剪枝。 我们令一个树 T 的误分类误差的期望为
再来想一下,10.3中所讲的,r(t)是叶节点t的误分类概率,等于
对于整个树,对叶节点的误分类比例进行加权累计求和,就得到了总的误分类概率。 并且,在10.3中,我们提到过,再代入误差是有趋于更小的,即树倾向生成更大的规模。我们证明了,父节点的误分类概率一定大于等于子节点误分类概率加权求和。
以上说明,如果我们用再代入误差最小化为策略时,我们总是倾向于选择更大的树,且无法解决减轻过拟合的影响。 10.8.1 剪枝的预备知识首先,我们先要生成最大的树,用
最后,我们需要预先进行一些定义:
即使对于适中规模的树来说,子树的数量都是非常巨大的。因此,我们无法穷尽遍历所有子树找到最优的情况。而且,我们通常也没有独立的测试集为有偏的选择提供服务。 我们需要更聪明的办法,这个办法需要满足以下两点:
10.8.2 最小代价-复杂度的剪枝如之前讨论的,再代入误差 R(T) 并不是一个很好选择子树的度量方式,因为它会倾向选择更大的树。我们需要加入对复杂度的惩罚,惩罚项要倾向于更小的树,以此来平衡再代入误差 R(T)。 代价-复杂度的定义:
叶节点越多,复杂度也就越大,因为我们把空间划分成子区域的方式会有更多,所以,会有更大的可能性更适合训练集的数据。除了复杂度,树的规模也是非常重要的。而这些问题都转化为用复杂度参数 α 来进行调整了。 最后,我们就说用上述的代价复杂度公式进行树的剪枝的。当 α=0 时,复杂度相当于被去掉,退化成再代入误差。所以,公式会选择生成最大规模的树。当 α 接近无穷大时,树的规模将为1,只有单一根节点。 通常,如果预先给定α 后,就能够找到子树T(α),使得代价复杂度 Rα(T) 最小。
那么,对于任意一个 α,最小化子树总是可解的。因为只有有限多个子树。 两个问题:
如果最优的子树都是嵌套的,那么计算量将会大幅下降。我们先找到
定义:对于参数α,最优最小树
根据上述定义,如果T(α)存在,那么一定是唯一的。之前我们也讨论过最小子树总是存在的,因为只有有限个子树。更近一步,我们可以证明最小子树总是存在的。这点是很重要的,因为一个树比另一个树小,说明它是是嵌套在大一点的树中的。 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |