机器学习中的一个主要问题是如何处理好偏差和方差之间的权衡。一个高偏差模型会对数据做出较强的假定,无法学到数据中固有的规律(欠拟合)。一个高方差模型对训练数据过度敏感,捕捉到随机噪声,导致在新数据上表现不佳(过拟合)。集成方法提供有效的对策来应对这种权衡问题,但装袋法和提升法采用显著不同的方式。装袋法:通过平均减少方差装袋法(Bagging),是自助聚合(Bootstrap Aggregating)的简称,主要是一种减少方差的技术。这种方法最适合不稳定且方差较大的模型,例如完全生长的决策树。这些模型被认为是“强”但不够稳定的学习器,因为它们倾向于具有低偏差,但对训练数据过度拟合。此过程包含两个主要步骤:自助采样: 从原始训练数据中通过有放回抽样创建多个随机子集。聚合: 在每个子集上训练一个独立的基模型。最终预测是所有各个模型的平均值(用于回归)或多数投票(用于分类)的。通过在数据的不同子集上训练模型,我们得到一个多样化的预测器集合。尽管每个单独的模型可能过度拟合并产生噪声预测,但这些误差通常不相关。当我们平均这些预测时,噪声趋于抵消,从而得到一个更平滑、更稳定的预测边界。最终模型的偏差大致与单个基模型的偏差相同,但方差大幅降低。{"layout":{"xaxis":{"title":"特征","range":[0,10]},"yaxis":{"title":"预测","range":[-2,2]},"title":{"text":"装袋法如何减少模型方差"},"showlegend":true,"margin":{"l":50,"r":20,"t":40,"b":40},"legend":{"x":0.01,"y":0.99}},"data":[{"x":[0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5],"y":[0.5,1.2,-0.5,0.8,1.5,-1.2,0.3,1.4,-0.8,0.9],"mode":"markers","type":"scatter","name":"训练数据","marker":{"color":"#868e96"}},{"x":[0,1,2,3,4,5,6,7,8,9,10],"y":[0,0.84,0.91,-0.14,-0.76,-0.96,-0.28,0.66,0.99,0.41,-0.54],"mode":"lines","type":"scatter","name":"真实函数","line":{"color":"#495057","width":3,"dash":"dash"}},{"x":[0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5],"y":[0.5,1.2,-0.5,0.8,1.5,-1.2,0.3,1.4,-0.8,0.9],"mode":"lines","type":"scatter","name":"模型1(高方差)","line":{"color":"#a5d8ff","width":1.5}},{"x":[0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5],"y":[0.6,1.1,-0.7,0.9,1.3,-1.4,0.5,1.2,-0.9,1.1],"mode":"lines","type":"scatter","name":"模型2(高方差)","line":{"color":"#ffc9c9","width":1.5}},{"x":[0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5],"y":[0.55,1.15,-0.6,0.85,1.4,-1.3,0.4,1.3,-0.85,1.0],"mode":"lines","type":"scatter","name":"装袋模型(低方差)","line":{"color":"#1c7ed6","width":4}}]}单个高方差模型会紧密拟合它们所见的特定训练点。对它们的预测进行平均会得到一个装袋模型,该模型更加平滑并更接近真实的底层函数。提升法:通过迭代修正减少偏差提升法基于完全不同的原理。它主要是一种减少偏差的技术。该方法从具有高偏差的简单基模型开始,例如浅层决策树(通常只是单次拆分的“树桩”)。这些模型被认为是“弱学习器”,因为它们单独表现仅比随机猜测稍好。提升法顺序地构建集成模型。每个新模型都经过训练,以修正之前模型组合所产生的误差。例如,在AdaBoost中,被早期模型错误分类的数据点在后续模型的训练中被赋予更高的权重。这促使算法关注它难以处理的样本。通过逐个添加模型,每个模型逐步减少剩余误差,集成模型逐渐成为一个强学习器。最终模型的偏差大幅低于其任何弱组成部分。然而,这种积极追求最小化训练误差的做法伴随风险。如果序列中添加的模型过多,集成模型可能会开始对训练数据过度拟合,从而增加其方差。这就是为什么控制模型数量和学习率的参数对于提升算法中的正则化作用很大的原因。集成策略概览装袋法和提升法之间的选择通常取决于您需要解决的误差类型。如果您的基模型过于复杂且过度拟合,装袋法是很好的选择。如果您的基模型过于简单且欠拟合,提升法是更好的方案。digraph G { rankdir=TB; node [shape=box, style="rounded", fontname="sans-serif", color="#495057", fontcolor="#495057"]; edge [color="#adb5bd"]; "集成方法" -> "装袋法"; "集成方法" -> "提升法"; "装袋法" [label="装袋法(例如,随机森林)"]; "提升法" [label="提升法(例如,梯度提升)"]; "装袋法" -> "并行训练"; "并行训练" -> "减少方差"; "减少方差" -> "基模型:\n低偏差,高方差"; "提升法" -> "顺序训练"; "顺序训练" -> "减少偏差"; "减少偏差" -> "基模型:\n高偏差,低方差"; }装袋法和提升法如何处理偏差-方差权衡的比较。有了这个基本认识,您已为理解梯度提升机如何扩展提升法的核心思路做好了准备。它没有像AdaBoost那样使用简单的加权方案,而是采用一种更通用且高效的方法,基于梯度来修正误差,让我们能精细地控制模型表现。