← 返回题目列表

Platt Scaling 如何把 SVM 输出转成概率?

中等 第 24 / 25 题 更新于 2026/09/25
支持向量机机器学习面试题模型训练
学习 AI 实战项目

简化版

Platt Scaling 在独立校准数据或折外分数上拟合两参数 sigmoid,把 SVM margin 映射为概率。只要拟合映射保持正确方向且严格单调,排序与 ROC-AUC 不变;它可能改善 NLL、Brier 和阈值解释,但不保证在分布漂移后仍校准,也不能用训练内分数直接拟合后宣称泛化校准良好。

详细版

  • SVM 原生输出 margin,不是概率。

  • Platt 拟合 1/(1+exp(Af+B))。

  • 应使用 OOF 或独立校准集,不能用同一训练预测。

  • 类别先验漂移会让旧映射失效。

  • 数据充足且关系非 sigmoid 时可比较 isotonic。

完整版教学

一、校准为 margin 增加频率语义

SVM 优化间隔与 hinge loss,没有要求 score=2 对应某个发生率。

Platt 用少量参数学习整体锐度与偏置。

单调 sigmoid 保持排序,所以 ROC-AUC 通常不变;改善的是 NLL、Brier 和阈值可解释性。

二、底层机制与公式

P(y=1|f)=1/(1+exp(A*f+B))
fit A,B by minimizing calibration log loss

三、带数字的推演

若原分数 [-2,0,2] 经拟合 A=-1、B=0 后概率约 [0.119,0.5,0.881]。

排序未变,但输出现在能按概率阈值使用。

四、方案对比

方案/对象核心特点代价或边界
Platt数据少、参数少只能拟合 sigmoid
Isotonic非参数单调小数据易过拟合
不校准 margin排序直接使用不能解释为概率

五、执行流程

训练 SVM -> 校准集/OOF 得 margin -> 拟合 A/B -> 测试集可靠性图
-> 报 NLL/Brier/AUC -> 上线监控分桶发生率

六、边界条件与工程代价

若基础 SVM 和校准器使用同一数据,会把过拟合 margin 映射得过于自信。

多分类可能对 OvR 分数分别校准后归一化,也可能像 LIBSVM 一样对 OvO 成对概率做耦合;这些方法不等价,必须说明库实现并检查各类概率和为 1。

记忆钩子:Platt 做的是“margin 保持顺序,再套 sigmoid 赋概率含义”。

七、常见误区与追问

  • 误区:SVM decision_function 已是概率。 它是到边界相关的有符号分数。

  • 追问:为何 AUC 常不变? 单调映射不改变样本排序。

  • 误区:在训练集拟合 sigmoid 最充分。 会产生校准泄漏。

  • 追问:Platt 和 isotonic 怎么选? 校准样本少选 Platt,充足时验证更灵活方法。

  • 追问:何时重校准? 先验或 score—结果关系漂移时。

八、加强记忆

Platt 做的是“margin 保持顺序,再套 sigmoid 赋概率含义”。

训练、校准、测试三份职责必须分开。