02. 模型评估与指标
本章覆盖分类/回归指标、概率校准和模型比较。
1. 混淆矩阵、Precision、Recall、F1 与 Accuracy
混淆矩阵
| 预测为正 | 预测为负 | |
|---|---|---|
| 真实为正 | TP | FN |
| 真实为负 | FP | TN |
Accuracy
\[ Accuracy = \frac{TP+TN} {TP+FP+TN+FN}. \]
Accuracy 回答的是:
所有样本中,模型预测正确了多少?
Precision
\[ Precision = \frac{TP}{TP+FP}. \]
Precision 回答的是:
模型预测为正的样本中,有多少是真的?
Recall
\[ Recall = \frac{TP}{TP+FN}. \]
Recall 也叫 Sensitivity 或 True Positive Rate,回答的是:
所有真实正样本中,模型成功找到了多少?
F1 Score
\[ F_1 = \frac{2\cdot Precision\cdot Recall} {Precision+Recall}. \]
也可以直接根据混淆矩阵计算:
\[ F_1 = \frac{2TP}{2TP+FP+FN}. \]
F1 是 Precision 和 Recall 的调和平均。只有两者都较高时,F1 才会较高。
3. ROC-AUC 与 PR-AUC
Precision、Recall 和 F1 都依赖某个固定阈值。ROC-AUC 和 PR-AUC 则通过改变阈值,评估模型在所有阈值下的整体表现。
ROC Curve
ROC 曲线的横轴是 False Positive Rate:
\[ FPR = \frac{FP}{FP+TN}. \]
纵轴是 True Positive Rate,也就是 Recall:
\[ TPR = \frac{TP}{TP+FN}. \]
从高到低改变分类阈值,会得到不同的:
\[ (FPR,TPR) \]
点,这些点组成 ROC 曲线。
ROC-AUC
ROC-AUC 是 ROC 曲线下面的面积。
它也可以解释为:
随机抽取一个正样本和一个负样本,模型给正样本更高分的概率。
对于分数相同的情况,通常按一半概率计算。
因此:
- ROC-AUC = 1:所有正样本都排在负样本前面。
- ROC-AUC = 0.5:排序能力接近随机。
- ROC-AUC < 0.5:排序方向可能反了。
ROC-AUC 只关心排序,不要求模型输出准确的概率。
4. Log Loss 与概率校准
二分类 Log Loss:
\[ \mathcal L =-\frac1N\sum_i \left[ y_i\log p_i+(1-y_i)\log(1-p_i) \right] \]
它不仅要求排序正确,也惩罚错误的概率置信度;对“高置信度但预测错误”惩罚尤其大。CTR、风险预测等需要概率参与后续决策的场景,Log Loss 通常比只看 AUC 更重要。
排序和校准的区别
- AUC:样本顺序是否正确。
- Calibration:预测 \(p=0.2\) 的样本中,长期是否约有 20% 为正。
单调变换分数可能保持 AUC 不变,却破坏校准。常见校准指标与方法:
- Brier Score。
- Reliability Diagram。
- Expected Calibration Error(ECE,依赖分桶方式)。
- Platt Scaling、Isotonic Regression、Temperature Scaling。
数值稳定的 Log Loss
不要先显式计算 softmax/sigmoid 再取 log。使用 log-sum-exp 或框架的 CrossEntropyLoss / BCEWithLogitsLoss,避免概率下溢到 0 后出现 \(\log 0\)。
目录
| 章节 |
|---|
| 00. 机器学习核心概念 |
| 01. 基础与神经网络机制 |
| 02. 模型评估与指标 |
| 04. 经典机器学习 |
| 05. NLP、RNN 与词向量 |
| 06. LLM 基础 |
| 07. 训练与系统 |
| 08. 对齐与 RLHF |
| 09. 推理与部署 |
| 12. ML Coding |
| 参考资料 |