AI训练师二级04:最硬核的一道,训练集、黄金测试集与偏差检测怎么做
发布时间:2026/10/22 17:46:37 锦皓数字建站

AI训练师二级04最硬核的一道训练集、黄金测试集与偏差检测怎么做我是老计。这一篇拆的是智能训练题B2 类它是整个考试里分值最重、也最能体现人工智能训练师专业度的一道。为什么说它最重上一篇讲过考试并列排名时这道题的优先级排在最前面官方某种程度上把它当成含金量最高的能力。它考什么一句话不只是会训模型而是会给模型准备好数据。构建高质量训练集、构建能代表整体分布的黄金测试集、再用统计方法检验有没有偏差确保模型上线后在各种场景下都稳。数据质量才是模型的核心竞争力。这道题会要你真写代码涉及特征工程、时序划分、分布检验是这个系列技术含量最高的一篇。为了演示又不碰原题版权我自己造一个全新场景外卖平台的订单量预测。一先看这道我自编的题场景一家外卖平台要做订单量预测帮商家和骑手提前备货、排班。但发现一个问题不同商圈、不同时段的订单波动差异很大模型如果不加控制上线后可能在某些商圈或时段预测得很不准、很不稳。给你一份历史订单数据字段大致是日期、时间、商圈ID、订单量、品类、时段标签早高峰/午高峰/平峰/晚高峰。三个任务任务一构建高质量训练集从时间里提取日期和小时并设计三类特征分别是各时段的平均订单量、各商圈在不同时段的平均订单量、各商圈过去5天的订单趋势任务二构建黄金测试集并做偏差检测按时间顺序划分训练/测试集用 KS 检验看测试集和整体的分布是否一致尤其各商圈分布要一致任务三针对近期波动明显偏大的热点商圈设计一套完整的测试方案测试目标、方法、评估指标这题的难点不在写几行 pandas而在你懂不懂背后的门道怎么不让数据泄漏、怎么保证测试集有代表性、怎么用统计检验说话。下面拆。二任务一特征工程关键是防泄漏任务一构建训练集核心是三类特征。代码还是 groupby 那套但这道题藏着一个专业考点数据泄漏这是新手最容易翻车、也是阅卷重点看的地方。三类特征的思路各时段平均订单量按时段分组求均值反映时段规律各商圈在不同时段的平均订单量按商圈加时段两个键分组反映商圈的时段特性各商圈过去5天订单趋势滚动窗口特征反映近期走势示意代码教学用字段和实现以考场为准importpandasaspd df[datetime]pd.to_datetime(df[date] df[time])df[date_only]df[datetime].dt.date# 提取日期df[hour]df[datetime].dt.hour# 提取小时# 特征一各时段平均订单量avg_by_perioddf.groupby(period)[order_count].mean()# 特征三各商圈过去5天订单趋势滚动必须先按时间排序dfdf.sort_values(datetime)df[trend_5d]df.groupby(area)[order_count].transform(lambdax:x.shift(1).rolling(5).mean()# 关键先shift(1))注意那行shift(1)这是整道题的灵魂级考点。算过去5天趋势时如果直接 rolling 当前这一行就把当天的订单量也算进了特征里而订单量正是你要预测的目标。这叫数据泄漏相当于让模型提前偷看了答案离线评估会虚高、一上线就崩。必须 shift 一下只用过去的数据算特征。滚动特征防泄漏是这类题区分专业和业余的分水岭。能主动说出先排序、滚动前先shift、训练时间早于测试就证明你真懂怎么给模型准备数据而不只是会调 API。三任务二黄金测试集要代表性也要防泄漏任务二是这道题最有专业味的部分分两步。第一步时序划分。普通机器学习可以随机切训练测试集但时序数据绝对不能随机切必须按时间顺序切训练集用早期数据、测试集用晚期数据。原因还是防泄漏如果把未来的数据混进训练集模型等于偷看了未来评估完全失真。代码上用TimeSeriesSplit或直接按时间点切。第二步偏差检测用 KS 检验。什么叫黄金测试集不只是切出来就行它得能代表整体数据的分布尤其各商圈的订单分布要和整体一致。否则测试集里某些商圈样本太少你根本测不出模型在那些商圈的真实表现。怎么检验分布一致用Kolmogorov-SmirnovKS检验它比较两个样本的分布是否相同fromscipy.statsimportks_2samp# 比较某商圈在测试集和整体中的订单量分布stat,p_valueks_2samp(area_in_test,area_in_all)这里有个极其重要的答题底线也是阅卷扣分重灾区怎么解读 KS 检验结果。p 值大比如 0.87说明没有显著证据表明两个分布不同也就是分布大体一致。但是别把 p0.87 说成87%的概率完全一致这是对 p 值的典型误读p 值不是概率、更不是一致程度正确说法是在该显著性水平下没有发现测试集与整体分布的显著差异报告时要给出统计量 D、p 值和样本量别只甩一个结论这类题考的不只是会不会跑 ks_2samp更是你会不会正确、严谨地解读统计结果。一句严谨的未发现显著差异比一句自信但错误的87%一致更能得分也更像一个专业的训练师该说的话。四任务三测试方案对着高波动切片测任务三要你针对近期波动偏大的热点商圈设计测试方案按三项写测试目标验证模型在高波动热点商圈的预测稳定性和准确性别让它在最关键的场景掉链子测试方法从测试集里切出热点商圈的样本单独测对比模型在热点商圈 vs 普通商圈的表现用历史高波动时段做压力测试评估指标预测误差如 MAE、RMSE、在热点商圈的误差是否显著高于平均、预测的稳定性这里也有个答题底线别根据没输出的数据点名具体哪个商圈是热点、别虚构模型的准确率数字。讲方法和指标而不是编造结论。这又回到那条贯穿全系列的原则严谨比自信重要。五这道题的通用解法骨架把这道硬核题的解法提炼成可迁移的骨架换任何训练集加测试的题都能用要求矩阵先列清题目要的特征、划分、检验分别是什么数据契约核对字段类型、枚举、时间范围、缺失异常特征粒度明确分组键、时间窗口、统计量、是否含当前样本防泄漏时序黄金集按时间切、不随机保证代表性偏差检测按维度比较分布报告 D、p、样本量严谨解读场景切片总体之外单独测热点、高波动、极端样本谨慎结论数值加口径加统计判断加限制不把相关写成因果、不编数据换成共享单车骑行量、连锁门店客流、设备故障预测套路完全一样。变的是业务和字段不变的是防泄漏、保代表性、严谨检验这套给模型准备数据的专业功夫。这就是人工智能训练师区别于只会调包的人的地方。小结这一篇拆了分值最重的智能训练题核心是会给模型准备好数据不只是会训模型。任务一特征工程三类特征用groupby那套但灵魂考点是防数据泄漏算滚动趋势特征必须先shift、只用过去数据否则模型偷看答案、离线虚高上线崩。任务二黄金测试集时序数据必须按时间切不能随机切(防泄漏),再用KS检验看测试集和整体分布是否一致(保代表性),解读时别把p0.87说成87%一致、要报D值p值样本量。任务三对高波动热点商圈设计测试方案写测试目标方法指标别虚构结论。通用骨架要求矩阵、数据契约、特征粒度、时序黄金集、偏差检测、场景切片、谨慎结论。严谨比自信重要。下一篇我们换个口味拆智能系统设计题怎么设计一套多产品协同的全链路智能方案。本文为学习性方法拆解所用外卖订单量预测场景与代码均为原创示意不含任何真题内容代码为教学示意实际以考场框架和数据为准正式考试内容与要求以当年赛题为准不押题、不保过。版权声明本文版权归作者老计个人所有。欢迎个人学习阅读未经授权禁止转载、摘编、搬运或用于任何商业用途违者将追究责任。转载请联系作者 Jich。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。