评估指标:准确率/F1/AUC 怎么选
模型训完要评好坏,而「好」的定义因任务而异。评估指标(metric)把预测与真相对齐成一个数字,选错指标,优化方向就会跑偏,尤其在类别失衡时。
分类:从准确率到 F1
准确率(accuracy)是整体正确比例,但在类别失衡时会失真——全猜多数类也能很高。精确率(precision)看预测为正的里面有多少真正,召回率(recall)看真正的里面有多少被找回。F1 是两者的调和平均,适合失衡与重视少数类的场景。
ROC-AUC 与 PR 曲线
ROC-AUC 衡量模型对正负样本的排序能力,对阈值不敏感、对失衡较稳健。当正类极稀有,PR 曲线与平均精度(AP)比 ROC 更具信息量。两者都关注「排序质量」而非某个固定阈值。
from sklearn.metrics import classification_report, roc_auc_score
print(classification_report(y_true, y_pred))
print("AUC:", roc_auc_score(y_true, y_score))
回归指标
回归常用 MSE、RMSE(与量纲一致)、MAE(对离群稳健)以及 R²(解释方差比例)。选哪个取决于是否关注大误差与离群点。
怎么选
先看任务与类别分布:失衡优先 F1/PR-AUC;需要排序能力用 ROC-AUC;回归按是否怕离群选 RMSE/MAE。指标之外,还要看业务代价——漏诊与误报的代价往往不对称。
小结
评估指标是模型优化的指挥棒。准确率易被失衡误导,F1 与 PR-AUC 更关注少数类,ROC-AUC 衡量排序。回归在 RMSE 与 MAE 间按离群敏感度取舍。指标选择应以任务与业务代价为准。
参考与延伸阅读
- scikit-learn 评估指标用户指南(分类与回归指标汇总)。已核验。https://scikit-learn.org/stable/modules/model_evaluation.html
- 关于类别失衡下指标选择的讨论见 scikit-learn 不平衡学习说明。待核实。https://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics
- 精确率召回率与 F1 的标准定义见 Wikipedia「F1 score」。待核实。https://en.wikipedia.org/wiki/F-score
本文累计阅读 — 次