qinghuan
← 模型训练与评估契约目录

MODEL TRAINING / 补充讲义 4 / 7

决策阈值的成本与相等边界

用固定分数核对误报漏报成本,冻结阈值,并检查调优API的数据与refit配置。

先完成阈值与精确率、召回率的入门对照。本节进一步固定误报和漏报成本,检查相等边界与数据隔离,并将这些要求落实到阈值调优接口。

概率与行动规则分别验收

改变同一批固定分数的阈值,会改变预测类别、误报和漏报,但不改变分数本身。它既不是概率校准,也不是重新训练模型。0.5 是常见概率截断值,不保证符合业务成本。分类决策阈值指南

先明确正类、成本或评分目标,再选择阈值。提高召回可能增加误报;对完整任务的取舍要同时看两者及实际处理量。

练习一 用固定分数核对成本和边界

用 Java 数组保存六条人工记录:

文中示例 · text
真实标签:[1, 1, 0, 1, 0, 0]
正类分数:[0.90, 0.60, 0.55, 0.40, 0.30, 0.10]
本练习约定:score >= threshold 时判为正类
教学成本:5 × FN + FP

按该约定,手算预期为:

阈值TPFPFNTN教学成本
0.5021126
0.3531021

检查调整阈值前后的原分数数组完全一致。另补一条分数恰好等于阈值的记录,断言本程序使用的边界;这里的“大于等于”是本练习的约定,不代表每个库都采用相同的相等处理。

成本 5 和 1 是教学设定,不是生产建议。这六条数据只能核对计算,不能证明某个真实模型的最佳阈值就是 0.35。

练习二 把阈值选择与最终测试分开

准备训练、阈值选择和最终测试的三份样本 ID 清单,任意两份存在交集就阻止本练习继续,并复用已有的近重复家族隔离规则。对已经训练好的分类器,只在阈值选择集比较规则;冻结规则之后,最终测试集只报告结果,不再用其答案反复挑阈值。

使用 TunedThresholdClassifierCV 时,核对实际安装版本和参数:默认评分为 balanced_accuracy,不能拿默认目标替代本练习的成本函数。使用 cv="prefit" 时,调阈值的数据必须区别于基础模型拟合数据,而且需要 refit=False;与 refit=True 组合会报错。多于一次分割的交叉验证又不能强制 refit=False,所以要按完整配置检查。API 参数与限制

交付记录与适用范围

记录模型与数据版本、正类标签、阈值、相等边界、评分或成本权重、三个数据集用途,以及 TP、FP、FN、TN。成本目标或数据分布改变时,旧阈值可能不再适合;阈值验收也不能代替工具授权、来源核查或安全策略。

两项练习均未运行,表中数值是手算预期。接口参数核查不等于真实模型效果验证。

来源与版本

scikit-learn 阈值指南与 TunedThresholdClassifierCV,原核查为 2026-10-25 18:11 JST,页面版本 1.9.1;本次于 2026-10-30 复核目标、独立数据及 cv/refit 限制,页面仍显示 1.9.1。该类标记自 1.5 加入,独立发布日期未标明。