← 返回题目列表

Bootstrap 如何用于模型评估?

中等 第 20 / 25 题 更新于 2026/09/25
模型评估机器学习面试题模型训练
学习 AI 实战项目

简化版

Bootstrap 从经验分布有放回重采样。只重采样测试集可估计“固定已训练模型在该评估总体上”的指标不确定性;若问题包含重新采集训练数据和重训带来的波动,还要在每次重采样中重跑训练流程。抽样单位必须匹配独立单位,时间序列或同用户多记录要用 block/cluster bootstrap。

详细版

  • 每次通常抽与原数据同样数量的样本。

  • 百分位区间取重复指标分布的分位点。

  • 小样本和非平滑指标可能有明显偏差。

  • 两个模型比较应在同一重采样中计算差值。

  • 测试集分布不代表线上时,区间再窄也无效。

  • 先声明模型是否固定;测试集 bootstrap 不覆盖训练过程和调参选择的不确定性。

完整版教学

一、Bootstrap 用经验分布模拟重复抽样

真实总体未知,经验分布把每个抽样单位赋予经验概率;有放回抽样近似重复采样。对已经锁定的模型,重采样 (y,prediction) 评估对即可得到条件于该模型的测试指标分布;若要评价整个建模算法,每次还需重采样训练数据、重新拟合并在相应评估设计上计算指标,成本和估计目标都不同。

配对比较保留同一请求上两模型预测相关性,差值方差通常更小。

二、底层机制与公式

for b in 1..B: idx=sample_with_replacement(n,n); m_b=metric(y[idx],p[idx])
CI95=quantile(m,[0.025,0.975])

三、带数字的推演

在 2000 个样本上重复 1000 次,AUC 分布 2.5% 与 97.5% 分位为 0.78、0.84,则报 95% bootstrap CI [0.78,0.84]。

四、方案对比

方案/对象核心特点代价或边界
普通 bootstrapIID 数据简单忽略组内相关
Cluster bootstrap按用户/主体重采样有效簇少时不稳
Block bootstrap保留时间局部相关块长需选择

五、执行流程

确定独立单位 -> 同时重采样标签与预测 -> 重算指标/差值
-> 检查分布和区间 -> 多 seed/B 稳定性 -> 报点估计与 CI

六、边界条件与工程代价

不能只重采样预测而不重采样对应标签;行索引必须整体同步。

准确率等离散指标在极小样本可能分布粗糙,必要时用 BCa、精确法或更多数据复核。

记忆钩子:Bootstrap 先找真正独立的抽样单位,再有放回重复。

七、常见误区与追问

  • 误区:Bootstrap 是不放回抽样。 核心是有放回重采样经验分布。

  • 追问:模型比较怎么做? 同一索引下计算两模型指标差。

  • 误区:每条日志都可独立抽。 同用户相关记录需按用户成簇。

  • 追问:B 越大解决什么? 减少蒙特卡洛误差,不解决样本偏差。

  • 追问:时间序列怎么办? 按连续块抽样以保留自相关。

  • 追问:为什么只抽测试集不够评价训练流程? 它把已训练模型视为固定,未纳入训练样本变化、随机种子和调参选择。

八、加强记忆

Bootstrap 先明确估计目标:固定模型的测试指标,还是包含重训的完整算法;再找独立抽样单位并有放回重复。

区间描述抽样不确定性,不会替你修复分布偏差。