课程概览

打分函数是什么?

打分函数,说白了就是一个评分器。你给它一组特征,它给你一个分数——这个分数代表模型对某个结果的置信度、相似度或者概率。在机器学习里,打分函数随处可见:推荐系统给商品打分、人脸识别给相似度打分、排序模型给候选文档打分……你想想看,几乎每个预测任务背后都藏着这么个函数。

我个人习惯把打分函数分成两类:一类是内建在模型里的,比如逻辑回归的 sigmoid 输出;另一类是事后计算的,比如用余弦距离去比两个向量。不管哪种,它们的共同点都是——分数是跨样本比较的。这就引出了一个坑:如果你的打分函数在不同批次之间表现不一致,那你得到的分数就不能直接对比。

核心观点:打分函数是模型决策的“度量尺”,但一把尺如果刻度不准,量出来的数就全废了。

批次偏差为什么是个问题?

我在实际项目里遇到过一件让人头疼的事:离线评估时 AUC 很好看,上线后效果直接崩了。查了半天,最后发现是批次偏差在搞鬼。

批次偏差的来源其实挺多的。你想想看:

  • 数据采样不均衡:你这批数据全是正样本,下批全是负样本,模型打分自然忽高忽低。
  • 特征分布漂移:用户行为随时间变化,今天这批用户的点击率特征和昨天那批不一样。
  • 模型更新节奏:线上模型每 1 小时更新一次,打分函数可能还没收敛就被拉上线。

这些问题会导致同一个输入在不同批次里拿到完全不同的分数。最要命的是——你以为分数是绝对值,其实它只是个相对值。我曾见过一个风控系统,因为批次偏差把正常交易误判为欺诈,损失不小。

常见批次偏差场景
场景表现典型影响
推荐系统离线 vs 在线离线排序分数前10的 item,在线只有3个被点击点击率下降 20%
人脸识别门禁白天批次识别率 99%,夜间批次降到 85%用户体验差,警报误报
广告 CTR 预估不同广告位同模型打分差异巨大出价策略失效,ROI 波动

注意:批次偏差不是模型过拟合,也不是数据噪声,它是评价体系内部的一致性缺失。你不控制它,所有的模型对比实验都会变味。

我们这课能帮你解决什么?

这门课不是我闭门造车想出来的,是踩了坑之后总结出来的实战经验。课程目标很直接:让你手里的打分函数在任意批次、任意场景下都能输出稳定可靠的分数。

具体来说,课程会涉及:

  1. 偏差诊断:怎么快速发现批次偏差?用统计检验还是可视化?
  2. 校正策略:均值平移、方差缩放、分位数对齐……什么时候用哪个?
  3. 在线自适应:在流水线里实时修偏,不能拖慢推理速度。
  4. 评估指标重建:用了校正后,原来的 AUC / NDCG 还能信吗?

我不打算讲花哨的理论,每个知识点都会配上可运行的代码片段。你拿过去改改就能用。

一个小技巧:如果你现在被批次偏差折磨得不行,可以先跳到第 3 章“快速诊断方法”,那里有一个三行命令就能跑起来的脚本。不过建议你还是按顺序学,基础打牢后面才爽。

你需要哪些前置知识?

嗯,这里要注意。我不是那种“从零开始”的老师,默认你已经有一些基础了:

  • Python 基础:会写循环、会用 numpy/pandas。如果你只会调 sklearn 的接口,也行,但中间有些调优参数要自己改。
  • 机器学习常识:知道什么是训练集/测试集,理解过拟合和欠拟合。不需要懂深度学习。
  • 统计学基础:均值、标准差、分位数这些概念清楚了就行。你不需要推导公式,但要知道它们代表什么。
  • 一点流水线经验:最好用过 MLflow、Kubeflow 或者自己搭过特征计算管道。没有的话也不影响,课程会提供最小化示例。

如果你觉得某个知识点卡住了,我建议你多用课程里的提示块——我专门在里面藏了很多避坑指南。

打分函数批次偏差控制 · 知识体系 打分函数批次偏差控制 打分函数定义 评分器、度量尺 打分函数作用 置信度、排序、分类 批次偏差来源 采样/漂移/更新 偏差影响 评估失真、线上崩 控制方法 校正/自适应/重建 课程目标 稳定可靠分数 前置知识:Python / ML / 统计

这张图把我们这一整章要讲的东西串起来了。中心点是“打分函数批次偏差控制”,周围是定义、作用、来源、影响、控制方法和课程目标。底部是前置知识——你如果觉得哪个节点还不够熟悉,建议先补一下那块内容再往下走。

一句话总结:这节课不是教你调模型,而是教你让模型的分数说人话——跨批次、跨场景、跨时间都站得住脚。