4. 混淆矩阵基础归纳总结
聊F1之前,咱们得先把地基打牢。说白了,混淆矩阵就是一把尺子,量的是你的模型到底猜对了多少、猜错了哪些。我刚开始做药物关系预测时,对着这个矩阵愣了半天——四个格子,每个格子都藏着坑。
什么是混淆矩阵
混淆矩阵就是一个 2×2 的表格,把真实类别和预测类别交叉列出来。对于二分类问题,它长这样:
| 预测为正类(Positive) | 预测为负类(Negative) | |
|---|---|---|
| 真实为正类(Positive) | TP(真阳性) | FN(假阴性) |
| 真实为负类(Negative) | FP(假阳性) | TN(真阴性) |
你注意看,行头是「真实」,列头是「预测」。每次我遇到团队新人搞混,我都会让他们在纸上画一遍这个表——横着画真实,竖着画预测。
四个基本元素
这四个格子的名字看着绕,我教你个口诀:第一个字母是T/F表示预测对了还是错了,第二个字母是P/N表示模型预测成啥类别。
- TP(True Positive):真实是正,模型也预测成正。比如一个药物对真能抑制靶点,模型判断对了。
- TN(True Negative):真实是负,模型也预测成负。该没反应就没反应,完美。
- FP(False Positive):真实是负,模型却说是正。这就是假警报,我在项目里见过最坑的——某个候选药物明明没作用,模型非要给它打高分。
- FN(False Negative):真实是正,模型却说是负。漏网之鱼,往往更致命,因为你可能错过一个真正有效的药物。
从混淆矩阵到评估指标
有了这四个数,咱们才能算精确率、召回率、F1。公式很简单,但意义你得吃透:
精确率(Precision)= TP / (TP + FP)
召回率(Recall) = TP / (TP + FN)
F1 = 2 * (P * R) / (P + R)
精确率问的是「你猜的正类里,究竟有多少是真正类?」召回率问的是「真正的正类里,你抓出来了多少?」我见过不少工程师只看精确率,结果模型把正类抓得很少,漏得精光。
举个例子:假设测试集有 100 个正例、100 个负例。模型预测出:
- 预测为正类的样本中,有 80 个是真正的正例(TP=80),20 个是负例(FP=20)
- 剩下的 20 个正例被漏掉了(FN=20),而负例中 80 个被正确排除(TN=80)
那么:Precision = 80/(80+20)=0.8,Recall = 80/(80+20)=0.8,F1也是0.8。但如果FP很多呢?比如FP=50,TP还是80,Precision就掉到0.615了。
你看,这四个指标的源头全是那四个格子。没有混淆矩阵,什么都算不出来。
常见误区与注意事项
- 永远先看混淆矩阵,别只看F1数字
- 检查正负样本比例,必要时用加权F1
- 对不平衡数据,优先关注Recall和FP/FN的绝对数量
还有一个容易犯的错——把混淆矩阵的行列写反。我见过一个团队,把真实和预测的位置弄混,算出来的Precision变成了瞎编的。嗯,这个真得仔细核对。
本章知识结构
下面这个SVG帮你把整个环节串起来:从数据进来,到四格定位,再到三个指标,最后回到业务理解。
图里的逻辑很清楚:右边是FP和FN这两个「坏孩子」,它们的多少直接影响了精确率和召回率,最终反映在F1上。你回头再看那个公式,所有计算都是这四个数字的加减乘除,没别的花头。
嗯,混淆矩阵就这么多内容。记住:它是评估指标的源头,也是你排查模型问题的第一站。下一段咱们就拿着这些数字,去真正理解F1是怎样平衡精确率和召回率的。