提升算法的有效性源于一个看似反直觉的设想:通过组合许多简单且不太准确的模型来构建一个高准确度的模型。这些简单的组成部分被称为弱学习器。弱学习器,或称弱假设,是指性能仅略优于随机猜测的模型。对于二元分类问题,随机猜测的准确率约为50%。弱学习器是指任何能够持续达到略低于50%错误率的模型。它不需要很强的能力,只需要具备一些预测信号,无论多么微小。决策树桩:一个典型示例梯度提升中最常用的弱学习器是决策树桩。决策树桩是深度仅为一的决策树。这意味着它仅基于单个输入特征的值进行预测。它由一个根节点(执行一次分割)和两个包含预测值的叶节点组成。因为它只能使用一个特征进行决策,所以决策树桩是一个非常简单且受限的模型。它本身不足以捕捉数据中的复杂关系,而这正是它成为优秀弱学习器的原因。digraph G { rankdir=TB; node [shape=box, style="rounded,filled", fontname="Arial", fillcolor="#a5d8ff"]; edge [fontname="Arial"]; root [label="花瓣宽度 < 0.8 厘米?"]; left_leaf [label="类别:山鸢尾", shape=ellipse, fillcolor="#b2f2bb"]; right_leaf [label="类别:非山鸢尾", shape=ellipse, fillcolor="#ffc9c9"]; root -> left_leaf [label=" 是"]; root -> right_leaf [label=" 否"]; }一个简单的决策树桩,用于鸢尾花分类。它根据单个特征的单个阈值来分割数据。为什么不使用强学习器?如果目标是创建一个有力的预测模型,使用有力的基础模型似乎是合乎逻辑的。我们为什么要故意限制我们的组成模型为弱学习器呢?答案在于提升算法的序列性。请记住,序列中的每个新模型都经过训练,以纠正其之前模型的错误。设想一下,如果我们使用一个“强”学习器,比如一个深度且未经剪枝的决策树,作为我们的基础模型。第一个树模型很可能会非常贴合训练数据,甚至可能过拟合。当我们计算这个第一个模型的误差(或残差)时,留给第二个模型学习的结构化误差将非常少。第二个模型最终会拟合数据中的噪声,而不是任何真实的潜在模式。整个过程很快就会导致模型记住训练集,并无法泛化到新数据。通过使用弱学习器,我们确保每个模型只带来微小而渐进的改进。每个树桩找到单个最佳特征和分割点,以适度减少当前误差。这为后续模型留下了大量的剩余误差,从而也留下了改进的余地。这种缓慢、迭代地逐步消除误差的过程,使得提升算法能够构建一个准确度高且不严重过拟合的复杂模型。弱学习器与偏差-方差权衡弱学习器的选择直接影响偏差-方差权衡。高偏差,低方差:单个弱学习器,比如决策树桩,是一个非常简单的模型。它无法捕捉复杂模式,单独使用时很可能会欠拟合数据。这意味着它具有高偏差。然而,因为它非常简单,所以对训练数据中的微小波动不敏感,使其具有低方差。提升算法是一个按序减少集成模型偏差的过程。它从一个高偏差模型开始,并在每次迭代中添加另一个弱学习器,以纠正一些系统性误差。通过组合数百或数千个这样的高偏差学习器,最终的集成模型能够模拟复杂的函数,从而得到一个整体偏差较低的模型。弱学习器固有的低方差有助于控制最终模型的方差,尽管如果添加过多学习器,它仍然可能过拟合。这与袋装法(Bagging)形成了根本性的对比,袋装法通常使用低偏差、高方差学习器(如深度决策树),并通过平均它们的预测来减少方差。总而言之,弱学习器并非提升算法的弱点,反而是其优势的源泉。它们的简单性使得学习过程可以循序渐进且受控,使得集成模型能够一步步构建出一个有效且泛化能力强的模型。这个基础必不可少,有助于我们接下来学习梯度提升机,梯度提升机通过梯度的数学表述来规范化这种误差纠正过程。