掌握决策树,我们需要学会如何划分一个决策树, 也有明白修枝的策略,这也是构建决策树很重要的部分。

一、决策树为什么要修枝

修枝主要解决决策树学习算法中的过拟合问题。

比如说,我们要给身高180cm,体重75kg的小明做一件裤子。一般情况下,只要根据小明的身高, 体重, 腰围这三个参数, 就可以做出来一件适合小明穿的裤子,这种裤子和小明同体型的人都可以匹配。但如果我们除了考虑身高, 体重,腰围这几个参数外,还额外去考虑这小明喜欢什么颜色,喜欢什么图案,喜欢什么材质,喜欢什么风格,那么这样作出来的一件衣服,依然适合小明, 但却不一定适合别人。用太多的参数训练的模型往往不具有普适性, 这就是过拟合的问题。所以,如果一棵决策树的判断条件过多,树过于复杂(我们一般用叶子节点个数来描述树的复杂度),就可以主动剪掉一些分支, 来降低过拟合的风险。

二、决策树修枝策略

决策树的修枝策略最基本的有两种:预修枝(pre-pruning)和后修枝(post-pruning):

预修枝(pre-pruning):预修枝就是在构造决策树的过程中,先对每个结点在划分前进行估计,若果当前结点的划分不能带来决策树模型泛化性能的提升,则不对当前结点进行划分并且将当前结点标记为叶结点。

后修枝(post-pruning):后修枝就是先把整颗决策树构造完毕,然后自底向上的对非叶结点进行考察,若将该结点对应的子树换为叶结点能够带来泛华性能的提升,则把该子树替换为叶结点。