Python 机器学习中,CART(Classification And Regression Trees)算法用于构建决策树,用于分类和回归任务。剪枝(Pruning)是一种避免决策树过拟合的技术,通过减少树的大小来提高模型的泛化能力。CART剪枝分为预剪枝和后剪枝两种主要方式。
参考文档:Python 机器学习 决策树 cart剪枝-CJavaPy
1、预剪枝(Pre-Pruning)
预剪枝涉及在决策树完全生成之前停止树的增长。可以通过设置一些停止条件来实现,
1)树达到预定的最大深度(max_depth)
2)节点中的样本数量少于预定阈值(min_samples_split
3)分割后的节点的信息增益小于某个阈值,
4)节点中样本的纯度(比如,用基尼指数或熵测量)已经足够高。
预剪枝简单易实现,但可能过于保守,有时会导致模型欠拟合。
2、后剪枝(Post-Pruning)
后剪枝,也称为剪枝,是在决策树完全生成之后进行的。它通过删除树的部分子树或节点来减少树的复杂度,选择那些能够提高交叉验证数据集准确率的剪枝。后剪枝策略包括成本复杂度剪枝(Cost Complexity Pruning)、错误率降低剪枝(Reduced Error Pruning)和最小错误剪枝(Minimum Error Pruning