卷 V · 交代CH 18工位 18/24

Step 8(20%):混淆矩阵,与那条你可以挪的阈值

工位 STEP 8.1 / 8.4 研究模式 · 评估结果与可靠性 20% 评分员在找:你有没有把四个格子(TP/FP/FN/TN)对应到四种业务后果,以及有没有意识到阈值 0.5 是软件默认值而不是数学结论。

Step 8 是全课最大的单步权重:20%,比 Step 5 和 Step 4 加起来还多。而它一行 fit() 都不需要——它要的全是读数、判断和表达。这一章处理最基础也最有杠杆的一块:那张两行两列的表,以及它背后那条你本来就有权挪动的线。

混淆矩阵精确率与召回率阈值代价矩阵F1 与 Kappa

四个格子,四种业务后果

混淆矩阵不是一个统计概念,是一张后果清单。填它的时候要同时填第三列:

格子技术含义在这个 SDG 项目里意味着什么谁承担
TP(真正例)预测未达标,确实未达标资源投到了真正需要的地区 —— 这是我们要最大化的
FN(漏报)预测达标,实际未达标一个高风险地区整年没有得到干预。代价是儿童生命那个地区的孩子
FP(误报)预测未达标,实际达标一次多余的走访/一批投错的疫苗。代价是钱和人力预算
TN(真负例)预测达标,确实达标正确地没有打扰

第三列写出来,Step 8 就赢了一半。因为一旦你写下「FN 的代价是儿童生命,FP 的代价是一趟车费」,接下来的一切——阈值怎么定、该报哪个指标、模型好不好——全都有了依据。

四个格子派生出的指标,各回答一个不同的问题:

指标公式它回答的问题什么时候是主指标
准确率 Accuracy(TP+TN)/N总共对了多少?只在两类大致平衡时有用(第 17 章)
精确率 PrecisionTP/(TP+FP)我报警的那些,有多少是真的?误报很贵时(人工复核成本高)
召回率 RecallTP/(TP+FN)真正的问题,我抓到了几成?漏报很贵时——本项目属于此类
F12PR/(P+R)两者的调和平均要一个综合数字时的默认选择
特异度 SpecificityTN/(TN+FP)真正没问题的,我放过了几成?医学筛查语境常用
Kappa(p₀−pₑ)/(1−pₑ)扣掉「碰巧猜对」之后还剩多少?和准确率一起报,免费的可信度加成

那条线本来就可以挪

模型输出的不是「是」或「否」,是一个 0 到 1 的概率。「≥ 0.5 判为正例」这个规则是软件的默认设置,不是模型的一部分,也不是数学结论。

下面这台把两个旋钮交给你:判定阈值,和「漏报比误报贵多少倍」的代价比。混淆矩阵、每个阈值的指标、总代价、以及最优阈值全部当场算:

取默认代价比 10:1(漏掉一个高风险地区 = 十次多余走访),扫一遍阈值:

阈值准确率精确率召回率F1漏报 FN误报 FP总代价
0.100.7570.6410.9670.77123353
0.150.7920.6780.9670.79722848 ← 最优
0.200.8130.7070.9510.81132454
0.300.8190.7400.8850.80671989
0.50(默认)0.8750.8520.8520.8529999
0.700.8680.9040.7700.832145145
0.900.8400.9520.6560.777212212

把阈值从 0.5 挪到 0.15,总代价从 99 降到 48——省掉 52%。模型一个字节都没改。

而请注意准确率在最优阈值处反而更低(0.792 vs 0.875)。这是这一章最重要的一句话:你要学会说「我故意牺牲准确率去换召回」,并给出为什么。

◆ 代价比从哪来:估一个,然后说明它是估的

你几乎不可能拿到真实的成本数字。但你可以给出一个有依据的量级估计,并说明结论对它有多敏感——这正是决策分析的标准做法:

8.4 代价敏感的阈值选择

漏报(FN)的代价:一个高风险地区未获干预,按 1.2.5 的估算
约对应每年 2 例可避免的儿童死亡。
误报(FP)的代价:一次多余的实地走访与物资投放,约 NZ$400。

由于两者量纲不可直接换算,我们采用相对代价比进行敏感性分析
(在 0.05–0.95 区间以 0.05 步长扫描):
  代价比  5:1 → 最优阈值 0.15,总代价 38,召回 0.967
  代价比 10:1 → 最优阈值 0.15,总代价 48,召回 0.967
  代价比 20:1 → 最优阈值 0.05,总代价 60,召回 0.984
结论:在 5:1 至 20:1 的整个合理区间内,最优阈值都远低于默认的
0.5,且召回率均不低于 0.96;代价比越高,最优阈值越低(这是
预期方向)。因此本项目建议采用阈值 0.15,并在部署时将其作为
可由决策者调节的参数(见 9.1)。

「敏感性分析」这四个字是这一段的灵魂。你不需要知道准确的代价比,你只需要证明在任何合理的代价比下结论都一样。这一段大约 150 字,是 Step 8 那 20% 里最高杠杆的 150 字。

F1 不是万能的:三种「综合指标」的选择

指标它默认的假设本项目该用吗
F1精确率和召回率一样重要不完全合适——本项目漏报比误报贵得多
Fβ(β=2)召回率比精确率重要 β² = 4 倍更合适。写一句「采用 F2 作为主指标,因 FN 代价显著高于 FP」就足够
期望代价你给出具体的代价比最合适,就是上面那张表的最后一列。它能直接翻译成业务语言

很多报告默认用 F1,因为工具默认输出它。但如果你在 8.4 写明「本项目采用 F2 而非 F1,因为……」,这就是一处很容易拿到的加分——它证明你理解指标背后的假设,而不只是复制输出。

⚠ 三个关于混淆矩阵的常见错误

1. 行列搞反。sklearn 的 confusion_matrix 默认是「行 = 真实,列 = 预测」,而且类别按字母序排列——'high' 排在 'low' 前面,所以左上角是「真实 high、预测 high」。SPSS 的 Analysis 节点和很多教材是反的。报告里的矩阵一定要标清行列含义,别让读者猜。

2. 在不平衡数据上只报准确率。第 17 章那个 0.922 就是警告。

3. 用测试集反复调阈值,然后报那个最好的结果。严格来说阈值也是一个参数,应该在验证集或交叉验证里选。本课的规模下这个偏差不大,但报告里要老实说:「阈值基于测试集的代价扫描选定,存在轻微乐观偏差;更严格的做法是在训练集内用交叉验证选阈值。」诚实声明不扣分,被抓到没声明才扣分。

8.1「研究已挖出的模式」写什么

这一小节容易和 7.3、8.3 混。三者的分工:

小节动词例句
7.3找到「树的第一分裂点为人均 GDP 1 182 美元;该分支下 148 个地区中 82% 未达标。」
8.1研究、核对「我们核查了该分裂点在 5 折中的稳定性:5 折的分裂点分别为 X、Y、Z……,区间为 A–B,说明该门槛稳健/不稳健。同时检查了落入该叶的地区构成,其中 60% 来自西区。」
8.3解释「这条门槛提示:低于该收入水平时,单纯提高疫苗覆盖率不足以达标,需配套基础投入。」

8.1 的核心动作是「验一验这个模式靠不靠得住」:换个种子还在不在?换个算法有没有一致结论?某个子群里是不是反的?这三个检查各一句话,8.1 就写完了,而且它们让 8.3 的解释有了底气。

⇄ 混淆矩阵与阈值在三条产线上
ISASOSASBDAS
混淆矩阵Analysis 节点(勾 Coincidence matrices)confusion_matrixclassification_reportMulticlassMetrics(predictionAndLabels).confusionMatrix()
调阈值Analysis 的 propensity 阈值 / 在 Filler 节点里按 $LP-risk 概率重判(proba >= t).astype(int)when(col('probability')[1] >= t, 1).otherwise(0)
代价敏感C5.0 / CHAID 的 Misclassification costs 矩阵(直接在建模时告诉它 FN 贵 10 倍)class_weight={0:1, 1:10}weightCol(先造一列权重)
KappaAnalysis 节点自带cohen_kappa_score手算或用 MulticlassMetrics

SPSS 的 Misclassification costs 是三条线里最优雅的一处:你直接在建模对话框里填「把 high 判成 low 的代价 = 10」,算法在训练时就会考虑它。ISAS 那次一定要用一下这个功能,并对比「有代价矩阵」和「无代价矩阵」两组混淆矩阵——这是一个几乎免费的高质量对比实验。

▣ 本章交付物 —— 报告里放什么

1. 一张标注清楚的混淆矩阵(行列含义写明)+ 四格业务后果表(上面第一张表的第三列)。

2. 阈值扫描表:至少 7 行(0.1 到 0.9),列出准确率/精确率/召回率/F1/FN/FP/总代价。

3. 代价敏感性分析段(上面模板,约 150 字):代价比的来源、三个代价比下的最优阈值、结论对代价比的稳健性。

4. 主指标声明:「本项目以召回率与 F2 为主指标,准确率仅作参考,理由为 FN 代价显著高于 FP。」

5. Step 8.1 的三个稳定性检查各一句:换种子、换算法、看子群。

这一章的一句话

混淆矩阵的四个格子要配上四种业务后果,因为那才是定阈值的依据;而阈值 0.5 只是软件默认值——在 10:1 的代价比下,把它挪到 0.15 能让总代价从 99 降到 48,代价是准确率从 0.875 掉到 0.792,而你要学会说清「我故意换的」。

下一章讲三张图:ROC、AUC、增益。它们各回答一个不同的问题,而其中只有一张是业务方真正看得懂的。