先记住这个答案
先将混淆矩阵的 TP、FP、TN、FN 分别乘以对应业务成本,如 C_TP、C_FP、C_TN、C_FN,然后求和除以总样本数,得到平均成本。若类别先验变化,则用目标先验概率替换训练集比例,对条件成本加权。最后比较各模型期望成本,选择最小者。
- 期望成本=各单元成本×计数求和再归一化
- 先验改变需用目标先验重加权条件成本
- 成本矩阵必须来自业务损失而非默认0/1
从计数到期望成本的公式化机制
设二分类混淆矩阵为 TP、FP、TN、FN。业务为每种结果定义成本 C_TP、C_FP、C_TN、C_FN,通常正确分类成本为 0 或负收益,错误分类为正成本。期望成本(平均损失)R = (C_TP·TP + C_FP·FP + C_TN·TN + C_FN·FN) / N,其中 N=TP+FP+TN+FN。由于 TP/TN 是正确分类,成本常设为 0,于是 R = (C_FP·FP + C_FN·FN)/N。
当类别先验改变时,例如训练数据正负比例为 1:9,但线上实际为 1:99,需要重新计算期望成本。先定义条件风险:给定真实类别为 P,错误代价为 C_FN(FN 均来自 P 类),给定 N 类错误代价为 C_FP。总体期望成本 R = π_P·C_FN·FNR + π_N·C_FP·FPR,其中 π_P 和 π_N 是目标先验,FNR=FN/(FN+TP) 是假阴性率,FPR=FP/(FP+TN)。因此只需用新先验替换旧比例,无需重新运行模型。
信贷申请:漏放与误拒成本不对称
银行用模型筛选贷款申请,正类为好客户,负类为坏客户。误拒好客户(FN)损失未来利息收入约 500 元;放给坏客户(FP)损失本金 10000 元,且 TN 和 TP 无收付。测试集 1000 样本,好客户 900、坏客户 100,模型 A 得到 FN=10、FP=5,模型 B 得到 FN=50、FP=2。仅看错误率,A 错误 15/1000≈1.5%,B 错误 52/1000≈5.2% 会选 A。
计算期望成本:模型 A 总成本 = 500×10 + 10000×5 = 5000+50000=55000 元,均损 55 元/客户;模型 B = 500×50 + 10000×2 = 25000+20000=45000 元,均损 45 元。尽管 B 错误数量更多,其漏放(成本低)多而误拒(高成本)少,实际总损失更低,所以应选 B。若线上坏客户先验上升到 20%(即 π_N=0.2,π_P=0.8),需用目标先验重新计算期望成本。基于测试集(好客户 900、坏客户 100),模型 A 的 FNR=FN/(TP+FN)=10/900≈0.0111,FPR=FP/(FP+TN)=5/100=0.05;模型 B 的 FNR=50/900≈0.0556,FPR=2/100=0.02。代入公式 R = π_P·C_FN·FNR + π_N·C_FP·FPR:A 的期望成本 ≈ 0.8×500×0.0111 + 0.2×10000×0.05 = 4.44 + 100 = 104.44 元;B 的期望成本 ≈ 0.8×500×0.0556 + 0.2×10000×0.02 = 22.24 + 40 = 62.24 元。B 仍更低,故应选 B。
成本矩阵误设与目标分布漂移的边界
期望成本法的核心假设是成本矩阵能真实兑现金钱或严重度损失。若成本是主观拍的或忽略了隐性成本,如法律风险、客户流失的长期损失,得到的最优模型可能误导。另外,当 FN 和 FP 成本极为悬殊时,模型会偏向预测低错误成本类,极端时可能全部判负,此时需引入其它约束如最少正样本数。
另一个边界是类别先验变化必须仅影响权重,不改变样本的条件分布。若线上数据分布迁移导致特征和标签关系也变,仅重加权先验不够,需重新训练或用无监督适应。期望成本公式还要求模型输出的 FNR/FPR 在给定先验下保持,否则须在新数据上重新评估模型输出。
容易答错的地方
- 认为准确率低模型一定更差
- 在成本不对称时,模型总错误多但高成本错误少可能期望成本更低。例如上例 B 错误率更高但成本低。比较模型必须用业务成本加权后的期望成本,而非简单准确率或 F1。
- 直接用训练集的比例调整成本
- 期望成本公式中的先验应该是目标场景的真实先验,而不是训练集或测试集的先验。若不校正,将测试集比例当作目标,当线上比例变化时选出的模型会偏。须用条件概率和先验重加权计算。
面试官还会怎么问?
当成本矩阵不是常数而随样本变化时怎么办?
可将成本分解为固定部分和可变部分,若有特征影响成本可建模为个性化成本函数,但通常用分层成本或期望成本均值近似,否则陷入个性化期望损失优化,需用决策树或规划方法。
如果误分类成本包含非金钱损失如声誉,如何量化?
可用等价金钱转换或效用函数,例如通过支付意愿调查或历史损失估计。若无法量化,可做敏感性分析,给出成本变动下的模型选择范围,而不是单一推荐。
多分类问题如何扩展期望成本?
使用成本矩阵 C 是 K×K,其中 C[i][j] 表示真实类别 i 被判为 j 的代价,期望成本=Σ_i Σ_j C[i][j]·P(i,j),在混淆矩阵上求加权和,最优决策选择每个样本预测使条件风险最小,但模型比较仍需整体加总。
参考资料
示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。