决策树与集成学习

理解树模型怎样递归划分样本,以及装袋、随机化和提升如何组合多个弱模型。

决策树与集成学习

决策树通过连续提问把样本划分到较小区域。每个内部节点检查一个条件,叶节点给出预测。树能够表达非线性和特征交互,也容易过度适应训练数据。集成方法通过组合多棵树改善稳定性或逐步纠正误差。

分裂选择减少节点混杂

分类树寻找能够使子节点类别更纯的分裂,回归树寻找能够降低目标离散程度的分裂。算法通常采用贪心策略,每一步选择当前最有利条件,不保证得到全局最优树。

连续特征按阈值切分,类别特征需要适当编码。缺失值怎样处理取决于具体实现,不能假设所有树模型行为相同。

深树容易记住偶然细节

不断分裂可以让叶节点只剩很少样本,训练误差随之降低,但边界可能由噪声和异常值决定。限制深度、叶节点样本数或剪枝用于控制复杂度,参数应通过独立验证选择。

单棵树可沿路径解释一次预测,但整棵大树仍可能难以理解。特征重要性也可能偏向取值多或经常被选择的变量,需要结合置换或局部分析复核。

装袋降低模型波动

装袋方法在不同样本子集上训练多棵树,再平均或投票。随机森林还在分裂时只考虑部分特征,使树之间差异更大。多个相关但不完全相同的模型组合,可以降低单棵树对样本扰动的敏感性。

随机森林通常比单树稳定,却失去简单路径解释。树数量增加后性能会趋于稳定,但存储和推理成本继续增长。

提升逐步修正当前误差

提升方法按顺序加入弱模型,每一步关注已有组合尚未解释的部分。学习率和树复杂度控制每一步贡献,轮数过多仍可能过拟合。与装袋可以并行训练不同,提升具有明显顺序依赖。

异常值、标签噪声和损失函数会影响提升过程。调参时应同时观察训练与验证曲线,不能只增加树数直到训练误差最低。

集成不消除数据问题

树模型可以处理复杂关系,却仍会学习样本偏差和泄漏特征。时间、位置或主体相关的数据需要正确划分,类别不平衡和部署变化仍需单独处理。

scikit-learn 用户指南区分决策树、随机森林和梯度提升等实现。具体缺失值、类别特征和概率行为随估计器与版本变化,工程文档应记录模型类、版本和主要参数。

概率输出仍要校准

叶节点中的类别比例或多棵树的投票可以形成分数,但不一定等于事件真实发生概率。样本重加权、叶节点过小和分布变化都会影响校准。需要概率参与成本计算时,应在独立数据上检查可靠性曲线,并把阈值选择与模型训练分开管理。

树还不擅长超出训练范围外推。输入超过已见最大值后,预测通常停留在既有叶节点水平;涉及长期趋势或物理连续关系时,需要单独检验这种边界行为。

资料依据