想象你是一家大酒店的主厨,要推出一桌“完美宴席”(强分类器)。你没有信心一次做对每道菜,于是你请来一群刚刚及格的“家常菜厨师”(弱分类器)。你的策略很特别:第一轮,让每位厨师各做一道拿手菜,你来试吃;哪道菜不满意,下一轮就“点名”让那位厨师重做,并告诉其他厨师:“重点照顾这道菜”;第二轮再把新的菜端上来试吃……每一轮,你最不满意的菜都会被更多人关注、反复打磨。几轮之后,你把每轮表现不错的菜都保留下来,按“满意程度”评个分,合在一起就凑成了一桌远超每位厨师单打独斗水平的宴席。 这就是 AdaBoost(Adaptive Boosting,自适应提升)的朴素图景:一个不断“试吃纠错”的主厨,带领一群弱分类器,通过反复强调错题、给错误样本加权重,最终组合出一个强分类器。它能证明:哪怕每个弱分类器只比瞎猜好一点点,组合之后的训练误差也会指数级下降。

岗位关联

对 AI 从业者而言,AdaBoost 是面试必答、工业级系统常用的经典集成方法。理解它,你才真正理解“如何把一群平庸模型组合成高手”,这是简历上最有含金量的基础功之一。

目录
  1. 可视化演示
  2. 宴席蓝图
  3. 试吃纠错循环
  4. 权重分配智慧
  5. 组合评分规则
  6. 指数收敛保证
  7. 实战注意要点
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。

本节配有交互动效(进入视口后自动加载,约 3KB)。

系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T

宴席蓝图

你是主厨,AdaBoost 的核心蓝图一句话:找一群只会做“六十分菜”的普通厨师(弱分类器),通过多轮试吃纠错,把他们各自最好的作品按评分组合,端出一桌九十分以上的宴席(强分类器)。这个“组合”不是简单的菜放一桌,而是同一个任务上大家轮流补位。

传统做法是找一个“全能大厨”(强模型),希望他一次把所有问题处理完美。但现实是:单个模型的偏差和方差很难同时压低。AdaBoost 换个思路——我不强求任何一个分类器完美,只要求每个弱分类器比瞎猜好一点点(比如错误率略低于 50%),然后让它们各管一段、取长补短。

具体框架分三层:弱分类器(决策树桩、感知机等简单模型)、加权样本分布(每轮侧重点不同)、加权投票组合(按各自表现分配话语权)。形式上,最终强分类器是多个弱分类器的线性组合:

回到宴席的比喻:蓝图就是“请一堆普通厨师,每人只做一个菜,最后按试吃满意度给每道菜打分,拼成一桌宴席”。每个厨师都不完美,但组合出的菜单可以非常出色。

F(x)=∑t=1Tαtht(x)\displaystyle F(x)=\sum_{t=1}^{T}\alpha_t h_t(x)
公式含义:T 轮训练共得到 T 个弱分类器 $\displaystyle h_t$,每个分类器带一个权重 $\displaystyle \alpha_t$(代表它的“话语权”),最终预测就是所有弱分类器意见的加权求和。权重大的分类器说了算。
  1. 求和符号把所有轮次的弱分类器结果累加起来
    ∑t=1T\sum_{t=1}^{T}
  2. 弱分类器输出第 t 轮训练出的分类器对样本 x 做出预测(如 +1 或 -1)
    ht(x)h_t(x)
  3. 组合系数每个弱分类器的“话语权”,误差越小的分类器 α 越大
    αt\alpha_t
  4. 最终组合对加权投票结果取符号,正为 +1 类,负为 -1 类
    sign(F(x))\mathrm{sign}\left(F(x)\right)

试吃纠错循环

宴席蓝图有了,关键在于怎么试吃、怎么纠错。AdaBoost 的每一轮迭代,就像主厨的一轮试吃:让一位弱厨师做菜,端上来后主厨重点找“哪些菜最不满意”(错分样本),下一轮就给这些菜更多的“曝光量”(权重)。

用数学语言说,每轮先训练一个弱分类器 $\displaystyle h_t$,然后计算它的加权错误率——注意,不是简单数错了几个,而是看“错题”在所有样本中的总权重占比:

其中 $\displaystyle D_t(i)$ 是第 t 轮样本 i 的权重分布,$\displaystyle I(\cdot)$ 是指示函数(条件成立为 1,否则为 0)。

这个循环的价值在于:错误率不是一个冷冰冰的数字,它直接决定了下一轮样本权重的走向。如果本轮错误率高,说明这道“菜”整体水平不行,下一轮要换其他厨师;如果错误率低,说明这位厨师靠谱,后面会给它更大的话语权。主厨的试吃,不是简单打分,而是拿着这份评分去调整下一轮的训练重心——这就闭环了。

εt=∑i=1NDt(i)⋅I(ht(xi)≠yi)\displaystyle \varepsilon_t=\sum_{i=1}^{N} D_t(i)\cdot I\left(h_t(x_i)\neq y_i\right)
  1. 样本权重分布第 t 轮时,每个样本被“重点照顾”的程度,初始是均匀的
    Dt(i)D_t(i)
  2. 指示函数分类器预测和真实标签不一致时取 1,否则取 0
    I(ht(xi)≠yi)I\left(h_t(x_i)\neq y_i\right)
  3. 加权求和把“被分错的样本”的权重全部加起来,就是本轮错误率
    ∑i=1NDt(i)⋅[⋅]\sum_{i=1}^{N}D_t(i)\cdot[\cdot]

权重分配智慧

试吃之后,主厨要做最关键的动作:给错题加码、给对题减码。想象一道菜被多位食客吐槽(被分错),下一轮所有厨师都会盯着这道菜的配方反复调改;而大家一致好评的菜,就不用再花精力了。样本权重的更新公式正是这个策略的数学化:

直观理解:正确样本乘以 $\displaystyle e^{-\alpha_t}$(小于 1,缩小),错误样本乘以 $\displaystyle e^{\alpha_t}$(大于 1,放大),再整体归一化。归一化这一步让权重始终是一个分布在样本上的“关注力预算”——总关注力就那么多,错题拿走了更多,对题自然就少了。

这个“智慧”正是 AdaBoost 名称里“Adaptive(自适应)”的来源:它不是固定地看待所有样本,而是每轮都根据上一轮的表现重塑关注分布。到后期,模型几乎把全部注意力放在最难啃的少数样本上。主厨的点评越到后面越“尖”,所有厨师都去攻最难的那道菜。

Dt+1(i)=Dt(i)⋅exp⁡(−αtyiht(xi))Zt\displaystyle D_{t+1}(i)=D_t(i)\cdot\frac{\exp\left(-\alpha_t y_i h_t(x_i)\right)}{Z_t}
  1. 原有权重上一轮结束时样本 i 的权重
    Dt(i)D_t(i)
  2. 指数因子正确分类时 $\displaystyle y_i h_t(x_i)>0$,指数为负,权重缩小;错分时指数为正,权重放大
    exp⁡(−αtyiht(xi))\exp\left(-\alpha_t y_i h_t(x_i)\right)
  3. 归一化因子把所有权重加起来做分母,保证更新后权重之和仍为 1(仍是合法的概率分布)
    Zt=∑j=1NDt(j)exp⁡(−αtyjht(xj))Z_t=\sum_{j=1}^{N}D_t(j)\exp\left(-\alpha_t y_j h_t(x_j)\right)

组合评分规则

每一轮试吃结束后,主厨都要评判这位厨师的作品到底值多少“话语权”。评判规则非常朴素:错误率越低,话语权越大。AdaBoost 给出的公式是:

如果 $\displaystyle \varepsilon_t$ 接近 0.5(瞎猜),$\displaystyle \alpha_t$ 接近 0,这位厨师说了等于没说;如果 $\displaystyle \varepsilon_t$ 接近 0(几乎全对),$\displaystyle \alpha_t$ 很大,这位就是主厨级别的意见领袖。最终预测时,所有弱分类器像“评审团”一样带着各自的权重投票:

回扣比喻:一桌宴席上,每道菜的分量不是平均的——大家都说好的菜(低错误率)在菜单上占据最大篇幅,评价一般的菜只有少量份额。最终客人吃到的整体满意度,是所有菜按分量加权后的综合印象。

αt=12ln⁡1−εtεt\displaystyle \alpha_t=\frac{1}{2}\ln\frac{1-\varepsilon_t}{\varepsilon_t}
  1. 错误率的补数正确率,越大说明分类器越好
    1−εt1-\varepsilon_t
  2. 比值正确率与错误率的商,反映“好”与“坏”的对比程度
    1−εtεt\frac{1-\varepsilon_t}{\varepsilon_t}
  3. 对数压缩取对数让比值小时压缩、大时也增长缓慢,避免单个分类器话语权爆炸
    ln⁡(⋅)\ln(\cdot)
  4. 折半因子缩放系数,配合权重更新里的指数系数使用
    H(x)=sign(∑t=1Tαtht(x))\displaystyle H(x)=\mathrm{sign}\left(\sum_{t=1}^{T}\alpha_t h_t(x)\right)

指数收敛保证

主厨最让老板放心的一点是:AdaBoost 在理论上给出了“板上钉钉”的收敛保证——训练误差会以指数速度下降。换句话说,只要每轮弱分类器的错误率不超过某个小于 50% 的上限,多轮组合之后,训练集上的误差会越来越小,而且缩小的速度是指数级的。

设每轮加权错误率为 $\displaystyle \varepsilon_t$,令 $\displaystyle \gamma_t=\frac{1}{2}-\varepsilon_t$(比瞎猜好多少),则训练误差上界为:

这里的直觉是:每轮进步一点点,就像每次复习一个错题本上的薄弱点,这些“微小进步”相乘之后会变成指数级的下降。注意这个定理说的是“训练误差”,是算法在理论上“能学进去”的保证;泛化到新数据还要靠正则化、控制模型复杂度等实践手段。但对老板(和面试官)来说,“指数下降”四个字,就是 AdaBoost 最有力的理论名片。

1N∑i=1NI(H(xi)≠yi)≤∏t=1T2εt(1−εt)≤exp⁡(−2∑t=1Tγt2)\displaystyle \frac{1}{N}\sum_{i=1}^{N}I\left(H(x_i)\neq y_i\right)\leq \prod_{t=1}^{T}2\sqrt{\varepsilon_t(1-\varepsilon_t)}\leq \exp\left(-2\sum_{t=1}^{T}\gamma_t^2\right)
  1. 训练误差最终强分类器在训练集上分错的样本比例
    1N∑i=1NI(⋅)\frac{1}{N}\sum_{i=1}^{N}I(\cdot)
  2. 逐轮乘积每一轮的错误率都转化成一个小于 1 的因子"2√(ε(1-ε))",乘起来越来越小
    ∏t=1T2εt(1−εt)\prod_{t=1}^{T}2\sqrt{\varepsilon_t(1-\varepsilon_t)}
  3. 指数上界若每轮 $\displaystyle \gamma_t$ 是正数(优于随机),则整体误差被指数函数压住
    exp⁡(−2∑t=1Tγt2)\exp\left(-2\sum_{t=1}^{T}\gamma_t^2\right)

实战注意要点

最后一节,主厨要传授几个实战心法。首先,弱学习器必须“略优于随机”——如果某个分类器的错误率超过 50%,它的 α 会是负数,反而帮倒忙。其次,数据中的噪声和异常点要格外警惕:异常点往往不断被错分、权重不断增大,最终模型会被少数离群点带偏,这正是 AdaBoost 在噪声数据上表现脆弱的原因。再次,基学习器不必复杂——决策树桩(一层决策树)是最经典的选择,因为单层树几乎不会过拟合,留给 Boosting 空间去“纠错”。最后,停止条件要根据验证集表现决定轮数 T,而不是一味堆轮数;轮数太多不一定会提升泛化能力。

比喻回归:主厨最后会告诉你——不要请米其林大厨来配合(太贵且容易抢戏),也不要请完全不会做菜的实习生(错误率超过 50% 会帮倒忙);请一群基本功扎实的普通厨师就行,但一定要小心个别“故意捣乱的客人”(噪声样本),别让他们抢走了所有注意力。懂得这些要点,你才真正从“会用 AdaBoost”进阶到“用好 AdaBoost”。

---

弱学习器ht∈H要求: εt<12实战: 决策树桩、浅层树、简单线性分类器\begin{array}{c}\text{弱学习器} \quad h_t \in \mathcal{H}\\\text{要求}:\ \varepsilon_t<\frac12\\\text{实战}:\ \text{决策树桩、浅层树、简单线性分类器}\end{array}
一个知识点的“弱”,恰恰是 AdaBoost 的“强”所依赖的基础:正因为弱分类器简单、不易过拟合,错误率才更稳定地落在“略优于随机”区间,允许算法安全地迭代很多轮。

AI 应用场景

信用欺诈检测

阶段:模型训练与迭代优化

解决的问题:传统规则引擎靠人工编写欺诈规则,难以覆盖不断翻新的欺诈模式;而普通分类器面对高度不平衡的数据(欺诈样本极少)时,会倾向于把所有样本判为正常。AdaBoost 的自适应权重机制天然适合欺诈检测——每一轮自动把被漏掉的欺诈样本权重放大,迫使模型在下一轮聚焦这些“错题”。

具体案例:某支付平台将过去 90 天的交易记录按天分桶,用 AdaBoost 训练 200 棵决策树桩作为弱分类器做实时风控。上线后,对新出现的欺诈模式(如小额试探、夜间集中交易)的召回率相比单个逻辑回归模型提升了约 18%。原因是 AdaBoost 对“难分样本”的迭代关注正好匹配欺诈行为“少数但多变”的特性。

医疗影像辅助筛查

阶段:特征工程与分类器集成

解决的问题:在医学影像中,病灶区域往往只占整张图像的极小部分,直接训练深度学习模型成本高;AdaBoost 配合人工设计的纹理、形态特征,能在小样本场景下快速构建可解释的辅助诊断模型。每次迭代把“漏检的病灶区域”当作重点样本,就像心电图医生反复端详最难判断的那几段波形。

具体案例:某基层医院用 AdaBoost 对 500 张标注好的眼底照片做糖尿病视网膜病变筛查,以决策树桩为弱学习器,训练 50 轮。相比单棵决策树,AdaBoost 在保持特异度不下降的前提下,灵敏度从 72% 提升到 89%,且模型输出的“误检样本”可以直接反馈给医生,形成人机协同的边学边改闭环。

Python 演示

python71 行
import numpy as np # 生成一份简单二维数据:线性可分的"圆内为正"数据rng = np.random.default_rng(42)N = 200X = rng.uniform(-1, 1, (N, 2))y = np.where(X[:, 0] ** 2 + X[:, 1] ** 2 < 0.6, 1.0, -1.0) class DecisionStump:    """单层决策树桩:只在一个特征上找一个阈值做判断"""    def __init__(self):        self.feature = 0        self.threshold = 0.0        self.polarity = 1     def fit(self, X, y, sample_weight):        best_err = float("inf")        m = len(y)        for f in range(X.shape[1]):            thresholds = np.unique(X[:, f])            for thr in thresholds:                for polarity in (1, -1):                    pred = np.where(X[:, f] <= thr, polarity, -polarity)                    err = np.sum(sample_weight * (pred != y))                    if err < best_err:                        best_err = err                        self.feature = f                        self.threshold = thr                        self.polarity = polarity        self.pred = lambda X: np.where(            X[:, self.feature] <= self.threshold, self.polarity, -self.polarity        )     def predict(self, X):        return self.pred(X)  class AdaBoost:    def __init__(self, n_estimators=20):        self.n_estimators = n_estimators        self.estimators = []        self.alphas = []     def fit(self, X, y):        n = len(y)        w = np.full(n, 1 / n)        for _ in range(self.n_estimators):            stump = DecisionStump()            stump.fit(X, y, w)            pred = stump.predict(X)            err = np.sum(w * (pred != y)) / np.sum(w)            if err >= 0.5:                break            alpha = 0.5 * np.log((1 - err) / max(err, 1e-10))            w *= np.exp(-alpha * y * pred)            w /= np.sum(w)            self.estimators.append(stump)            self.alphas.append(alpha)     def predict(self, X):        score = np.zeros(len(X))        for alpha, stump in zip(self.alphas, self.estimators):            score += alpha * stump.predict(X)        return np.where(score >= 0, 1.0, -1.0)  model = AdaBoost(n_estimators=20)model.fit(X, y)train_acc = np.mean(model.predict(X) == y)# 同时报告各弱分类器的数量print(f"AdaBoost 训练准确率: {train_acc:.3f}, 弱分类器个数: {len(model.estimators)}")
目的:用 20 个决策树桩作为弱分类器,在一个“圆形正类”的二分类数据集上实现一个从零手写的 AdaBoost,验证其组合效果。
  1. class DecisionStump决策树桩:AdaBoost 中最经典的弱分类器,只做一个特征、一个阈值的判断,保证“略优于随机”。
  2. w = np.full(n, 1 / n)初始化样本权重为均匀分布,对应“第一轮所有样本同等重要”。
  3. stump.fit(X, y, w)在带权样本上训练弱分类器,寻找使加权误差最小的切分点。
  4. err = np.sum(w * (pred != y)) / np.sum(w)计算加权错误率,这是决定 α 的关键输入。
  5. if err >= 0.5: break若弱分类器已经差到不如随机猜,就停止迭代,防止负贡献。
  6. alpha = 0.5 * np.log((1 - err) / max(err, 1e-10))计算该弱分类器的话语权:错误率越低,α 越大。
  7. w *= np.exp(-alpha * y * pred)权重更新:对样本乘上指数因子,分错则放大、分对则缩小。
  8. score += alpha * stump.predict(X)预测时所有弱分类器按权重投票,最终取符号。

常见误区

误区我在学习 AdaBoost 时以为每一轮会把被分错的样本“复制”成好几份放进数据集,让模型反复看到同样的数据。这样数据集会越来越大,训练不就越跑越慢吗?

正解AdaBoost 并不改变样本集合本身,而是改变样本的权重分布。加权的效果是间接实现的:弱分类器在拟合带权数据时,会优先满足权重高的样本(例如决策树桩会最小化加权错误率),从而把“注意力”集中到错题上。数据集大小始终不变,只是每个样本在损失函数里的地位不同——这就像主厨不重新炒菜,而是更认真地品尝某一道菜并据此调整后续配方。

为何常见:很多教程用“重采样”直观解释 Boosting,初学者容易把“权重大”误解成“复制样本”。实际上 AdaBoost 走的是“加权训练”而非“重采样”路径,理解错了会扭曲后续对归一化因子的理解。

误区既然算法最终要组合所有弱分类器,那我把每个弱分类器换成准确率 95% 的强模型,整体效果是不是能超过 99%?至少不会差吧?

正解理想化理解是“组合强模型会更准”,但实践中 AdaBoost 对强模型的提升有限,甚至适得其反。原因有两点:一是强模型在每轮几乎不犯错,加权错误率会掉到接近 0,导致 α 巨大,后续轮次几乎没有纠错空间(权重分布无法被有效重塑);二是强模型本身容易过拟合,把噪声当成了规律,Boosting 叠加过拟合只会更严重。AdaBoost 的“燃料”恰恰是弱而稳的分类器——它们有稳定的错误率(不高于 50%),才能让每轮的权重更新有意义。

为何常见:生活中“强强联合”的直觉深入人心,但集成学习里“差异性和多样性”比“单个强度”更重要。科学史上一锅乱炖通常胜过一个顶级大厨的单打独斗,这反直觉。

误区论文和书里说 AdaBoost 的训练误差以指数速度降到 0,所以我就以为模型在新数据上的误差也会这么漂亮。

正解指数收敛定理针对的是训练误差(经验误差),它只说明算法有能力“记住”训练集。到了测试集上,还要看模型的泛化能力。实际中,当训练轮数 T 过大时,AdaBoost 会逐渐把注意力集中到噪声样本上,测试误差反而可能先降后升。业界经验是用验证集确定合适的轮数,或在训练中检查早停点,而不是盲目追求训练误差趋零。

为何常见:看到“指数下降”这样的关键词容易让人兴奋,忽略了定理的适用前提;这也提醒我们读任何理论结论时先看它“在什么集合上成立”。

误区既然 AdaBoost 会把难分样本的权重放大,那它对异常点应该特别“用心”、能自动识别并绕开它们,所以对脏数据很鲁棒。

正解恰恰相反,AdaBoost 对噪声和异常值非常敏感。异常点通常很难被正确分类,因此每轮它们都会被错误分类、权重被不断放大,到后期模型几乎被几个离群点绑架,导致整体性能骤降。解决思路是预先清洗数据、使用带噪声控制的变体(如 AdaBoost 的鲁棒版本),或者限制单样本权重的上限。异常点就像宴席上故意挑刺的客人,主厨若每轮都无限度关注他们,正常客人就会被忽视。

为何常见:把“关注难分样本”正向理解成“重视困难数据”本身没错,但忽视了难分样本里既有真实困难样本、也有纯粹的噪声这两类不同角色——算法没法区分它们。

面试题

Q1. AdaBoost 每轮迭代中,样本权重更新的核心策略是?

单选题 · easy

  • A.所有样本权重保持不变
  • B.正确分类的样本权重增大
  • C.错误分类的样本权重增大← 正确答案
  • D.随机增减样本权重

答案:C。AdaBoost 的核心就是“聚焦错题”——错误分类的样本权重在每轮被放大,正确分类的样本权重缩小。A 是零更新,B 与算法相反,D 是随机噪声。就好比主厨试吃后点名要求重做不满意的菜,而不是表扬满意的菜。

Q2. AdaBoost 中弱分类器的“弱”指的是什么?

单选题 · easy

  • A.模型参数量最少
  • B.只需比随机猜测略好← 正确答案
  • C.训练时间必须最短
  • D.只支持线性模型

答案:B。弱分类器的精度只需略优于 50%(二分类随机猜测),例如决策树桩。A 是复杂度层面的描述,“弱”的核心是“精度略高于随机”;C 是工程约束;D 错误,非线性模型也可作为弱分类器。

Q3. 若某轮弱分类器的加权错误率 ε=0.2,该轮组合系数 α 约为?

单选题 · mid

  • A.0.5
  • B.0.69← 正确答案
  • C.0.80
  • D.1.00

答案:B。α=½·ln((1-ε)/ε)=½·ln(0.8/0.2)=½·ln4≈0.693。计算得 α≈0.69,故选 B。其他选项不是代入公式的结果。这个 α 代表错误率 20% 的弱分类器在最终投票中的话语权。

Q4. 关于 AdaBoost 的迭代过程,下列说法正确的有?

多选题 · mid

  • A.每轮都会重新计算样本权重分布← 正确答案
  • B.错误率低于 0.5 的弱分类器可能获得负的 α
  • C.权重更新后需要归一化保持概率分布← 正确答案
  • D.决策树桩是唯一可用的弱分类器

答案:AC。A 正确,每轮根据上一轮结果更新权重分布;C 正确,归一化因子 Z 保证权重和为 1;B 错误,错误率<0.5 时 α 为正;D 错误,决策树桩只是常用选择,不是唯一选择。

Q5. AdaBoost 中最终强分类器如何做出预测?

单选题 · mid

  • A.所有弱分类器预测的多数投票
  • B.按 α 加权后的符号函数输出← 正确答案
  • C.最后一个弱分类器的预测结果
  • D.随机选取一个弱分类器的输出

答案:B。最终 H(x)=sign(Σα_t·h_t(x)),是加权投票后取符号。A 忽略了权重;C 只保留了最后一个模型,浪费了组合;D 是随机选择,都不对。就像一桌菜的最终评价要综合所有菜的分量和口碑。

Q6. 训练误差上界 ∏2√(ε_t(1-ε_t)) 表明:

单选题 · hard

  • A.每轮误差决定上界的乘法因子← 正确答案
  • B.训练误差会线性下降
  • C.测试误差必定指数下降
  • D.弱分类器错误率越低越容易过拟合

答案:A。每个因子 2√(ε(1-ε))≤1,连乘使上界指数缩小,且每个因子由该轮 ε 决定,A 正确。B 错在“线性”,实际是指数级;C 错在定理针对训练误差;D 与题目无直接关系。

Q7. 以下哪些情况会导致 AdaBoost 模型表现变差?

多选题 · hard

  • A.数据集包含大量标签噪声← 正确答案
  • B.弱分类器在每轮错误率稳定为 49%
  • C.训练轮数过多且无早停← 正确答案
  • D.弱分类器复杂度远高于数据规模← 正确答案

答案:ACD。A 噪声会被持续放大权重,带偏模型;C 后期过度聚焦噪声;D 单个分类器过拟合导致每轮几乎没有可纠错空间。B 错误率 49% 是“略优于随机”,正是算法运行的良好条件。

Q8. AdaBoost 名称中"Adaptive"主要指:

单选题 · easy

  • A.能自适应学习率
  • B.能自适应调整样本权重分布← 正确答案
  • C.能自适应选择损失函数
  • D.能自动选择合适的神经网络结构

答案:B。"Adaptive"体现在每轮根据上一轮分类结果调整样本权重分布,把注意力聚焦到难分样本上。A 是优化器概念;C 是损失工程;D 是网络搜索,都与 AdaBoost 的核心机制无关。

Q9. 关于 α_t=½ln((1-ε_t)/ε_t) 的描述正确的是:

多选题 · mid

  • A.ε=0.5 时 α=0← 正确答案
  • B.ε 越小 α 越大← 正确答案
  • C.错误率超过 0.5 时 α 为负← 正确答案
  • D.α 与样本数量成正比

答案:ABC。代入 ε=0.5 得 ln1=0,A 对;ε 越小 (1-ε)/ε 越大,α 越大,B 对;ε>0.5 时比值小于 1,ln 为负,C 对;α 只与错误率相关,与样本数无关,D 错。

Q10. 与 Bagging(如随机森林)相比,AdaBoost 的核心差异在于:

单选题 · hard

  • A.不使用决策树作为基学习器
  • B.样本权重随轮次动态变化← 正确答案
  • C.只能用于二分类问题
  • D.无需设置基学习器数量

答案:B。Bagging 各轮独立采样、权重固定,AdaBoost 每轮调整权重聚焦前一轮的错题,这是二者最本质的区别。A 错,两类方法都用树(决策树桩)也常见;C 错,AdaBoost 可扩展多分类;D 错,轮数 T 仍需设置。