评估指标
正确评估模型性能是机器学习的核心环节。选择合适的评估指标,理解它们的含义和局限性,对于模型开发和部署至关重要。
学习难度:入门·阅读时间:约10分钟
评估的重要性
为什么重要
- 判断模型是否学到了有用的模式
- 比较不同模型的性能
- 指导模型优化方向
- 决定模型是否可以部署
评估原则
- 数据集划分:训练集、验证集、测试集
- 避免数据泄露:测试数据不应参与训练
- 多指标评估:单一指标可能误导
- 考虑业务场景:选择与业务目标一致的指标
分类指标
混淆矩阵
分类结果的基本表示:
- TP(真正例):预测为正,实际为正
- FP(假正例):预测为正,实际为负
- TN(真负例):预测为负,实际为负
- FN(假负例):预测为负,实际为正
基础指标
准确率(Accuracy)
正确预测数 / 总预测数
简单直观,但类别不平衡时会误导。
精确率(Precision)
TP / (TP + FP)
预测为正的样本中有多少是真正。关注"查准"。
召回率(Recall)
TP / (TP + FN)
真正的样本有多少被正确预测。关注"查全"。
F1分数
2 × Precision × Recall / (Precision + Recall)
精确率和召回率的调和平均。
回归指标
常用指标
| 指标 | 公式 | 特点 |
|---|---|---|
| MSE | Σ(y-ŷ)²/n | 对大误差敏感 |
| RMSE | √MSE | 与原数据同单位 |
| MAE | Σ|y-ŷ|/n | 对异常值鲁棒 |
| R² | 1-SS_res/SS_tot | 可解释方差比例 |
R²的意义
- R² = 1:完美预测
- R² = 0:与均值预测一样
- R² < 0:比均值预测还差
ROC与AUC
ROC曲线
受试者工作特征曲线:
- 横轴:假正率 FPR = FP/(FP+TN)
- 纵轴:真正率 TPR = TP/(TP+FN)(即召回率)
- 曲线上的每个点对应一个分类阈值
AUC
ROC曲线下面积:
- AUC = 1.0:完美分类器
- AUC = 0.5:随机猜测
- AUC > 0.8:较好的分类器
AUC的优点
- 不依赖于分类阈值的选择
- 对类别不平衡不敏感
- 可以比较不同模型的排序能力
指标选择
根据业务场景选择
欺诈检测
优先召回率。宁可多检查,不漏掉欺诈。
垃圾邮件
优先精确率。误判正常邮件为垃圾邮件代价大。
医疗诊断
平衡精确率和召回率,或用F1分数。
类别不平衡时的选择
- 避免单独使用准确率
- 使用F1、AUC或平衡准确率
- 关注少数类的召回率
常见误区
过度关注准确率
在类别不平衡时,准确率可能误导:
例如:99%是负类,模型全部预测为负
准确率 = 99%,但模型毫无价值
在训练集上评估
- 训练集表现好不代表泛化好
- 必须使用独立的测试集
单一指标决策
- 不同指标反映不同侧面
- 应该综合考虑多个指标
忽视业务上下文
- 指标优化不等于业务价值
- 要考虑不同错误的代价