Skip to content

泛化与模型评估

模型在训练数据上表现好,只能说明它拟合了训练目标。真正有价值的是泛化能力:面对未参与训练、但来自真实业务的数据,模型仍然能够正确工作。

欠拟合与过拟合

状态训练表现验证表现典型原因
欠拟合模型太简单、特征不足、训练不充分
合理拟合接近训练表现学到了可迁移规律
过拟合很好明显较差模型记住噪声、数据少或泄漏

增加模型规模不一定能解决问题。欠拟合可能需要更好的特征、数据或模型,过拟合则可能需要更多有效数据、正则化和更严格切分。

指标必须对应错误成本

分类

混淆矩阵把预测和真实结果分成四类:

真实为正真实为负
预测为正TPFP
预测为负FNTN
  • Precision = TP / (TP + FP):报出的正例有多少是真的。
  • Recall = TP / (TP + FN):真实正例找出了多少。
  • F1:Precision 和 Recall 的调和平均。
  • ROC-AUC:模型区分正负样本的整体排序能力。
  • PR-AUC:正样本稀少时更有解释力。

风控可能更关心漏过高风险用户,营销可能更关心不要打扰太多正常用户。指标选择必须对应实际动作。

回归

  • MAE:平均绝对误差,容易解释,对异常值相对稳健。
  • MSE / RMSE:放大大误差,适合大偏差代价高的场景。
  • MAPE:相对误差直观,但真实值接近零时不稳定。

排序与检索

  • Precision@K:前 K 个结果中相关结果比例。
  • Recall@K:所有相关结果中有多少进入前 K。
  • NDCG:考虑相关程度和排序位置。
  • MRR:第一个正确结果出现得有多靠前。

阈值不是模型参数

分类模型输出分数后,应用还要选择决策阈值。阈值降低通常提高召回、增加误报;阈值提高通常减少误报、增加漏报。

阈值应结合:

  • 误报和漏报成本。
  • 人工审核容量。
  • 不同人群的公平性。
  • 概率是否经过校准。

基线

没有基线就无法判断复杂模型是否值得。

常见基线包括:

  • 多数类别或历史平均值。
  • 简单规则。
  • 线性或树模型。
  • 当前生产系统。
  • 人工处理效果和成本。

复杂模型如果只提高很小,但延迟、算力和维护成本大幅增加,未必是更好的业务方案。

离线评估与在线评估

离线评估可重复、风险低,适合模型选择和回归;线上评估反映真实用户和系统影响,但容易受流量、人群、季节和产品改动干扰。

上线常采用:

  1. 影子流量:模型处理真实请求但不影响结果。
  2. 小流量灰度:让少量请求使用新模型。
  3. A/B 实验:随机分组比较业务指标。
  4. 分阶段放量:确认质量、延迟和资源稳定后扩大流量。

分片评估

总指标可能掩盖局部失败。至少应按重要维度切片:

  • 新老用户。
  • 地区和语言。
  • 设备和渠道。
  • 高低价格区间。
  • 常见和长尾类别。
  • 数据质量正常和异常样本。

漂移

上线后需要区分:

  • 数据漂移:输入分布变化。
  • 概念漂移:输入和目标之间的关系变化。
  • 标签漂移:目标比例或定义变化。
  • 反馈回路:模型决策反过来改变后续训练数据。

处理方式可能包括重新校准阈值、更新特征、重训模型、回滚版本或重新定义任务。

完整评估报告

一份可决策的评估报告至少包含:

  • 数据范围、版本和切分方式。
  • 与基线和当前生产模型的对比。
  • 主指标、辅助指标和置信区间。
  • 关键人群与场景分片。
  • 典型正确和错误样例。
  • 延迟、吞吐、资源和成本。
  • 已知风险、上线条件和回滚策略。

评估不是在模型完成后补一张分数表,而是从任务定义开始贯穿整个生命周期。

别急,先让缓存热一下。