其实决策树算法非常容易过拟合,这时我们就需要剪枝来应对过拟合,类比到线性回归就相当于添加正则项,以此来提高模型的泛化能力。就像我们之前说的剪枝分为两种:
预剪枝有点类似于Alpha-beta剪枝算法,他是在我们生成决策树的过程中,如果某个节点的熵值小于某个我们设定的阈值或者样本数量少于多少时我们就不再继续分割节点,又或者是当树的深度达到一定值时我们就不再继续向下生成决策树。通过这些手段来防止决策树过拟合。 在决策树生成过程中,对每个节点在划分前先进行估计,若当前节点的划分不能带来决策树泛化能力的提升,则停止划分并将当前节点标记为叶节点。
后剪枝就是我们已经有一个完整的决策树了,然后自底向上地对非叶节点进行考察,若将该节点对应的子树替换为叶节点能带来决策树泛化能力提升,则将该子树替换为叶节点。