Day21_【机器学习—决策树(3)—剪枝】
剪枝(Pruning) 是决策树算法中用于防止过拟合、提高模型泛化能力的关键技术。决策树在训练过程中如果生长过深、过于复杂,会过度拟合训练数据中的噪声和异常值,导致在新数据上表现不佳。剪枝通过简化树结构,去除不必要的分支,从而提升模型的鲁棒性。
一、剪枝的目的
- 减少模型复杂度
- 防止过拟合
- 提高在测试集上的预测性能
- 增强模型的可解释性
二、剪枝的类型
剪枝主要分为两类:预剪枝(Pre-pruning) 和 后剪枝(Post-pruning)
1. 预剪枝(Pre-pruning)——提前停止
在决策树构建过程中,提前终止树的生长。
常见停止条件:
- 树的深度达到预设最大值
- 节点中的样本数少于阈值
- 节点的不纯度下降小于阈值(如信息增益 < ε)
- 节点中所有样本属于同一类别
- 没有更多特征可用于划分
优点:
- 计算开销小
- 训练速度快
缺点:
- 容易欠拟合:可能过早停止,错过潜在的有效划分(“贪心”问题)
- 阈值选择敏感,需通过验证集调整
✅ 适用于对训练时间敏感的场景。
2. 后剪枝(Post-pruning)——先生成再简化
先让决策树充分生长(直到每个叶节点纯或满足最小样本数),然后自底向上地对非叶节点进行评估,判断是否应将其子树替换为叶节点。
优点:
- 通常比预剪枝效果更好
- 能保留更多有效结构,避免欠拟合
缺点:
- 计算成本高(需先建完整树)
- 实现较复杂