title: "我的算法工程师方法论:先把数据与评估搞明白" publishedAt: "2025-12-27" summary: "从一次 CV 竞赛(SVHN 字符识别)和一次时序预测(内存故障预测)的经历出发,聊聊我最常用的改进路径:数据分布、评估偏差、以及可复现实验。"

很多时候,模型不是输在"结构不够大",而是输在 数据分布评估逻辑 上。

我做过两个很不一样的任务:

任务不同,但最有效的改进路径惊人一致:先确保你在优化"正确的东西"。

1. 先问:训练集、验证集、线上测试,到底是不是同一种分布?

在街景字符识别里,我遇到过一个非常典型的问题:
验证集存在"结构性漏标"(比如重复字符少标),导致离线 MAP 难以突破某个上限。
这会带来一个后果:你以为你在优化模型,实际上你在优化"验证集的噪声"。

经验:

2. 评估偏差比你想象得更常见

在视觉任务里,后处理(NMS、置信度阈值、字符排序规则)经常带来"看起来很小但很稳"的提升。
在时序预测里,前向填充(ffill)+ 时间聚合会直接改变特征分布,从而让模型学到更"稳定"的模式。

这里的共同点是:
你并不是在"作弊",而是在把评估方式更贴近真实任务目标。

我常用的检查清单:

3. 可复现实验是提升速度的秘密武器

如果你每次改一行参数就直接跑整套训练,最终你会被自己淹死。

我现在会强制自己做到:

这能让你在两周后还能回答:
"我当时到底是怎么把分数提高的?"

结语

我更偏爱这种工程化的节奏:
先搞清楚数据与评估,再谈模型与技巧。
后续我会把两个项目里具体有效的改进(比如 YOLO 的输出排序、时序聚合粒度与采样策略)单独写成可复现的笔记。