第4章:模型评估流程与实验设计

本章聚焦面试高频考点:数据集划分、交叉验证、A/B测试。掌握结构化回答框架,避免常见误区,提升面试通过率。

数据集划分与评估 训练/验证/测试 随机分层 + 时间 交叉验证 A/B测试 数据泄露 / 样本偏差 回答框架:先定义 → 讲原则 → 提方法 → 避坑 加分点:主动提及数据泄露、时间序列特殊划分、样本量不足时交叉验证
面试核心逻辑:先清晰区分训练/验证/测试集作用;再讲划分原则(随机分层+时间序列);然后提交叉验证与A/B测试适用场景;最后主动指出常见陷阱。

面试问答卡片(3个)

Q1:请说说训练集、验证集、测试集的区别和作用,以及如何划分?

考察点是否理解三个集合的独立目的;能否解释划分基本原则(分层、时间、随机);有无实际项目划分经验。
回答框架① 定义三个集合作用(训练拟合、验证调参、测试最终评估)→ ② 划分原则:随机分层保证分布一致,时间序列按时间切分 → ③ 比例建议(70/15/15或80/10/10) → ④ 特殊处理:小样本用交叉验证替代固定测试集
示例回答训练集用于学习参数,验证集调超参防止过拟合,测试集评估泛化能力。划分采用随机分层保持类别比例,时序数据按时间窗口切分。常见比例70/15/15。若样本不足,用K折交叉验证替代固定验证集。
可能追问如何避免数据泄露?测试集能否重复使用?时间序列如何防止未来信息泄漏?
避坑提醒❌ 不能说“验证集和测试集一样”;❌ 不能忽视时间序列的时序性;✅ 主动提分层采样+shuffle时机

Q2:请谈谈交叉验证的几种方式,以及你常用的方法和原因。

考察点是否掌握K-Fold、Stratified K-Fold、LOO等变体;能否根据数据特点选择合适方法;实际使用经验。
回答框架① 列举常用方法(K-Fold、Stratified K-Fold、Leave-One-Out) → ② 选择依据:分类用Stratified保持分布,数据量大用K=5-10,极少量用LOO → ③ 优点:充分利用数据,减少随机性 → ④ 缺点:计算量大,时间序列不能直接用
示例回答我最常用Stratified K-Fold(K=5),因为分类任务中能保持每折类别比例。大数据量用K=10,小样本用LOO。注意时间序列数据不能打乱,需用TimeSeriesSplit滚动验证。
可能追问K值越大越好吗?时间序列交叉验证如何实现?交叉验证后如何选最终模型?
避坑提醒❌ 不要说“我全都用LOO”,样本量大时计算爆炸;✅ 强调数据特性决定方法选择

Q3:A/B测试在模型评估中如何开展?需要注意哪些陷阱?

考察点是否理解A/B测试的核心流程(假设、分组、指标、显著性);能否识别常见陷阱(样本偏差、多重比较、流量与功效);实际业务落地经验。
回答框架① 明确线上A/B测试目的(验证离线模型效果) → ② 流程:提出假设→随机分组→确定成败指标→运行→统计检验→决策 → ③ 陷阱:样本量不足(功效分析)、多重比较(Bonferroni修正)、长尾效应(运行足够时长) → ④ 加速方法:分层抽样、MAB(多臂老虎机)
示例回答先做功效分析确定最小样本量,按用户_id随机分组避免冲突。主指标选核心业务指标(如CTR),辅指标监控副作用。运行至少一周覆盖周周期效应。用t检验或卡方检验计算显著性,p值<0.05判定胜出。
可能追问如何判断统计显著但实际不显著?流量不足怎么办?A/B测试与在线学习的关系?
避坑提醒❌ 不能只跑一天就下结论(忽略星期效应);✅ 提到SRM(样本比率不匹配)检查分组均衡性

项目案例模板

将以下模板改编为你自己的项目,面试时直接使用“STAR”结构叙述。

项目名称基于深度学习的推荐模型离线&在线评估体系搭建
业务背景业务侧需频繁上线推荐算法,但旧评估流程仅用单一指标,线下线上效果差异大。需建立标准流程降低实验风险。
规模指标离线数据集1亿样本;线上每日接触300万用户;A/B测试流量分配10%实验组,90%对照组。
技术栈Python, PyTorch, scikit-learn, Spark, Airflow, Feast, 内部实验平台
核心难点① 时间序列特征导致离线划分易泄漏;② 线上流量稀疏,统计功效不足;③ 多模型同时测试时多重比较问题
面试高频追问如何处理离线-线上指标不一致?时间序列特征具体如何保证时序性?多重比较校正的具体p值调整?
可迁移回答话术“我设计了一套分层离线-在线校准流程:离线用滚动窗口交叉验证,线上用Bonferroni校正控制假阳性,同时引入PSI监控特征分布漂移。当线上效果与离线差异超过阈值时,自动触发回溯分析。”
📌 面试加分技巧:主动提及你曾通过SRM检查发现分组不平衡,用bootstrap增强小样本置信区间,这些细节会让面试官印象深刻。
⚠️ 常见死穴:回答时混淆“验证集”与“测试集”;提到交叉验证但不解释K值选择逻辑;A/B测试不提统计功效,容易被认为缺乏工程落地经验。