[机器学习]决策树中的正则化机制

140 阅读4分钟

在决策树中,正则化机制指的是通过一系列约束或限制条件,防止模型过度去拟合训练集数据,提升其泛化能力。

正则化的核心目标是简化模型结构,让模型在保持准确率的同时,避免因复杂度过高而“记住”噪声或无关细节。


为什么需要正则化?

决策树天然倾向于生成一棵复杂的机构树(例如极深的树),通过不断分裂节点,直到所有叶子节点完全“纯净”(即其中所有的样本属于同一类别)。

虽然这样的树在训练数据集上准确率可能接近100%,但面对新数据时性能会显著下降, 因为训练的时候过拟合, 导致泛化能力很差.

正则化机制通过以下方式平衡模型的复杂度泛化能力

(模型越复杂, 则泛化能力就越差)


决策树中的正则化具体方法(降低模型的复杂度)

1. 预剪枝(Pre-pruning)

在树生长过程中通过设定约束条件, 提前停止分裂,防止树变得过深或过复杂。(早停)

常用约束条件包括:

  • 最大深度(max_depth) :限制树的最大层数。
  • 最小叶子节点中样本数(min_samples_leaf) :叶子节点至少包含的样本数(例如少于5个样本则停止分裂)。
  • 最大叶子节点数(max_leaf_nodes) :直接限制叶子节点的总数。
  • 最小分裂增益(min_impurity_decrease) :仅当分裂带来的信息增益(或基尼系数减少量)超过阈值时才允许分裂。
2. 后剪枝(Post-pruning)

先允许树完全生长,再通过剪除对泛化能力贡献小的分支来简化树。典型方法如:

  • 错误率降低剪枝(或者称为悲观剪枝)(REP, Reduced-Error Pruning)
    用验证集评估剪枝后的性能,若去掉某个分支后, 错误率不上升,则剪除分支。(c4.5算法就是悲观剪枝)

  • 代价复杂度剪枝(Cost-Complexity Pruning)
    通过平衡树的分类误差和复杂度(如叶子节点数)选择最优子树(例如CART算法中的剪枝策略)。

3. 特征选择与分裂规则优化
  • 限制分裂特征的选择范围:例如随机森林中每棵树仅随机选取部分特征进行分裂。
  • 使用信息增益率(而非信息增益) :C4.5算法通过信息增益率(信息增益 / 属性固有值)减少对多值属性的偏好,间接正则化。
4. 随机化与集成
  • 随机森林(Random Forest) :通过多棵树的投票机制降低单棵树的过拟合风险。
  • 梯度提升树(如XGBoost、LightGBM) :引入正则化项(如L2正则化叶子权重)直接约束模型复杂度。

正则化的直观类比

想象一个学生备考:

  • 未正则化的决策树:学生死记硬背所有题目答案(完美拟合训练数据),但遇到新题型时可能不会举一反三(泛化能力差)。
  • 正则化的决策树:学生理解核心知识点(简化模型),虽然考试可能漏掉某些细节题(训练误差略高),但面对新题时更灵活(泛化能力强)。

总结

正则化机制的本质是对模型复杂度的惩罚,通过约束树的生长或简化已有结构,找到“简单但足够有效”的模型。

实际应用中,需根据数据特点调整正则化参数(如max_depthmin_samples_leaf),通过交叉验证选择最佳平衡点。

个人总结

正则化就是通过一些限制和约束的手段, 防止模型过于复杂, 避免模型过拟合, 从而提升模型的泛化能力.

过拟合就是: 在训练数据上表现很好, 准确率可以是100%, 但是在新的数据上, 表现很差, 泛化能力很差.

预剪枝: 在树生长的过程中进行剪枝, 比如限制树的深度, 最大叶子节点数, 节点中最小的样本数, 信息增益的最小值等

后剪枝: 悲观剪枝(错误率降低剪枝, c4.5算法), 代价复杂度剪枝(cart算法).

其他的正则化手段: 通过集成的手段, 还有随机(样本随机, 特征随机)的手段, 比如随机森林