本节摘要:测试误差只是一个数。残差按小时、按星期、按 horizon、按事件日切开,才能看见是欠拟合季节、泄漏、还是分布漂移。SOURCE 把误差分析与模型诊断单列,并在挑战里强调鲁棒性与分布外。诊断的对照结论是:先修数据与任务切分,再换模型族。
阅读完本节,你应当能够:
残差应围绕零、无结构。若整体常正,模型系统性低估,可能趋势没跟上,或缩放反了。若残差随预测值变宽,异方差,点预测的 MSE 会偏向高水平段;区间任务该上分位数或 NLL。若残差在每周一尖,星期特征没进或网络窗口不够。若只有测试后半变差,漂移。
SOURCE 在特性里把残差当解释不掉的随机部分;在评估里要求画残差图。诊断就是检验“随机”是否成立。不成立时,加层很少是第一处方。第一处方对照:
系统偏差 → 查趋势、查反缩放、查水平漂移 星期/小时结构 → 查日历特征、窗口是否覆盖周期 horizon 抬头 → 查迭代策略,改直接多输出 尖峰日独大 → 查异常是事件还是故障,换 MAE/Huber 突然变差 → 查分布外,不要再搜超参
诊断时做一个残忍对照:把最可疑的“神特征”拿掉,测试若崩盘,该特征很可能含未来。把输入噪声打乱时间顺序(仅用于体检,不是训练),若性能几乎不变,模型根本没在用时间结构,可能在用泄漏的全局水平。
分布外是 SOURCE 挑战清单里的鲁棒性与泛化。高温年、疫情年、新航线开通,训练没见过。深度在训练分布里很准,出分布会比简单季节模型更差,因为它把训练年的非线性细节背下来了。对照:在已知的结构变化点切开,单独报变化后误差。变化后若全体模型都差,是问题不可预报,不是你没上 Transformer。
按站点或按线路看误差:某一条线特别差,可能是数据质量,不要被平均 RMSE 藏住。平均会把一条脏线稀释在二十条好线里。
| 现象 | 更像 | 优先动作 | 不优先 |
|---|---|---|---|
| 残差周结构 | 季节欠拟合 | 日历或加长窗口 | 加注意力头 |
| 残差随水平变宽 | 异方差 | 换损失为分位/NLL | 加大隐藏维 |
| 后半测试垮 | 漂移 | 滚动重训、协变量 | 一次性格搜索 |
| 拿掉某特征即垮 | 泄漏嫌疑 | 查信息集 | 把该特征当宝 |
| 打乱时间仍准 | 没用时间结构 | 查泄漏或只用了均值 | 换更强序列族 |
| 只极端日差 | 尾部 | 事件特征或稳健损失 | 报平均假装没有 |
每次实验至少留下:总体指标、分 horizon 表、按星期箱线、一张叠加图。没有这些,模型族排名不可信。调参记录里写清“这次是为了修星期残差”,而不是“再试一组神秘超参”。诊断驱动的对照,才和本文集的主调一致。
⚠️ 常见坑:看见残差有自相关,立刻上更长 LSTM。自相关可能来自漏掉的日历,日历一加,相关自己没了。
💡 关键直觉:残差结构是说明书。说明书指向数据或任务时,换族是读错了说明书。
变电站若残差在节假日全是大负(严重高估),不是容量不够,是节日负荷形态与工作日不同,缺节日通道。上 Transformer 会把工作日学得更细,节日照样错。
看见问题,先查表再动结构。残差星期一全正:加工作日特征或检查窗口是否跨周末。残差随预测值变宽:换 MAE/Huber 或上分位,不要加层。后半测试垮:查是否新航线、新电价、传感器更换,考虑滚动重训,而不是当天网格搜索。某特征一去就垮:查时间戳是否含未来。打乱时间仍准:模型可能在用全局水平或泄漏,先停训。
按站点拆开误差。平均 RMSE 漂亮、其中一座脏站撑起误差,应隔离脏站,而不是给全体上 Transformer。隔离是数据质量动作。极端日单独计数:高峰估平会在叠加图上显形,在平均里被低谷的小误差稀释。业务若怕高峰,诊断主图就应该是高峰日,不是全年平均。
把每次实验的“假设的病”写在日志第一行。修完对照是否消失。消失则假设成立,留下补丁。不消失则假设错,不要把补丁叠上去当永久架构。诊断驱动对照,才不会把第 4 章变成结构收藏夹。SOURCE 把误差分析单列,就是怕人只用一个测试数字做决策。
分布外单独报。已知结构变化点之后,全体模型都差,结论是不可预报或要新特征,不是深度失败。只有深度垮、季节朴素仍稳,才是过拟合训练年细节。两种结论对应完全不同的下一动作。
星期一残差全正加日历;随水平变宽换损失;后半垮查结构变化与滚动重训;去特征即垮查泄漏;打乱仍准先停训。按站点拆误差,脏站隔离是数据动作。高峰估平看高峰日图,不要被低谷稀释。修完看结构是否消失,不消失不要把补丁叠成永久架构。分布外单独报:全体差则不可预报或要新特征;仅深度垮而季节朴素稳,才是过拟合训练年。两种下一动作完全不同。SOURCE 单列误差分析,就是怕一个测试数字做完所有决策。
系统偏差查趋势缩放漂移。星期小时结构查日历和窗口。horizon 抬头查迭代策略。尖峰日独大查事件还是故障并换稳健损失。突然变差查分布外。看见自相关立刻加长 LSTM,可能只是漏日历。打乱时间仍准,模型没用时间结构。按实体看误差避免平均藏脏线。变化点之后全体差是不可预报。诊断写进日志:总体、分 horizon、按星期、叠加图。没有这些,族排名不可信。先修说明书指向的数据与切分,再换模型族。
先查日历和窗口是否覆盖周期。自相关常来自漏写的星期,日历一加就没了。立刻加长 LSTM 是读错说明书。去特征即垮查泄漏。打乱仍准查没用时间结构。后半垮查漂移与滚动重训。按站点拆开,脏站隔离。高峰日单独看图。假设的病写第一行,修完看是否消失。分布外全体差则不可预报;仅深度垮则过拟合训练年。两种动作不同。没有分组图的族排名不可信。SOURCE 单列诊断,就是怕一个 RMSE 做完全部决策。
诊断对照要求每次实验第一行写假设的病,修完看说明书上的结构是否消失。星期一残差加日历,不要先加长记忆。随水平变宽换损失或上分位。后半测试垮查结构变化和滚动重训。去特征即垮查泄漏。打乱时间仍准则模型可能没用时间结构。按站点拆误差,脏站隔离是数据动作不是模型动作。高峰估平看高峰日图,低谷小误差会稀释平均。分布外单独报:全体差则不可预报或要新特征;仅深度垮而季节朴素稳,才是过拟合训练年细节。没有分组残差和叠加图,族排名不可信。残差是说明书,读错就会换错族。一个测试数字做完全部决策,正是诊断节要挡住的事。
把诊断单做成修前修后对照。修前:假设的病、分组图、分步误差、叠加图、最差实体。修后:同一组图是否消失。消失则留下补丁;不消失则撤销补丁,不许叠成架构。自相关先查日历。打乱仍准先停。脏站隔离。分布外单独报并区分全体差与仅深度垮。诊断单缺图不得换族。把诊断单编号与切分卡版本绑定。一个均方根做完全部决策,诊断单视为未填。说明书指向数据时,换族是读错说明书。把这句话印在诊断单页脚,提醒下一班同事。
诊断单编号与切分卡绑定后,换卡必须换单。旧图不得拿来解释新卡。修后图与修前图并排,消失才留补丁。不消失就撤销。页脚那句读错说明书,用来拦住急着换族的人。脏站隔离记录进数据质量,不进模型荣誉。分布外两行结论写清楚再动手。缺图换族视为未诊断。
换切分卡必须换诊断单,旧图不解释新卡。修前修后并排,结构消失才留补丁,否则撤销。脏站进数据质量账。分布外两行结论写清再动手。缺图不得换族。页脚那句拦住急着换结构的人。编号与卡版本绑定,避免图和题对不上。一个均方根做完全部决策,视为未诊断。说明书指向数据与任务时,换族就是读错说明书。
并排图必须同一坐标轴同一时段,否则修后变好可能只是换了季节。脏站隔离单要有时间戳和责任人。分布外两行结论未写清,禁止动结构。诊断单与卡版本不一致时,以卡为准重出图。急着换族的人先读页脚。未诊断的均方根不得进入排名会议。
排名会议材料若只有一个均方根没有并排图,会议取消。取消不是拖延,是拒绝未诊断的结构崇拜。下一班用同一张单继续,不另起炉灶换族。
会议取消后,议题只能是补图,不能是换族投票。
补图完成前,排名会议不改期只改议程。
残差若只在高温日或台风日后偏,先加事件通道或分段外生,不要把总体均方根的微弱下降当成换族成功。诊断单第一行写假设的病,第二行写对照实验,第三行才允许出现模型族名字。
下一章把合法评估拿到任务形态上:多变量、单步多步、点与区间、可解释、在线批量,四条对照轴收束。