在机器学习的分类任务中,仅知道模型 "准确率" 是不够的。尤其是面对类别不平衡、多分类问题时,我们需要更全面的评估指标来衡量模型性能。本文将深入解析常用分类评估指标的数学原理,并结合 Python 代码示例进行演示。
一、基础评估指标
1. 混淆矩阵(Confusion Matrix)
混淆矩阵是分类评估的基础,它展示了模型预测结果与真实标签之间的关系。对于二分类问题,混淆矩阵如下:
真实 \ 预测 | 正例 (Predicted Positive) | 反例 (Predicted Negative) |
正例 (Actual Positive) | 真正例 (TP) | 假反例 (FN) |
反例 (Actual Negative) | 假正例 (FP) | 真反例 (TN) |
from sklearn.metrics import confusion_matrix
y_true = [1, 0, 1, 1, 0, 1]
y_pred = [1, 0, 0, 1, 0, 1]
cm = confusion_matrix(y_true, y_pred)
print("混淆矩阵:")
print(cm)
2. 准确率(Accuracy)
准确率是最直观的评估指标,表示模型正确预测的样本比例:
局限性:在类别不平衡的情况下,高准确率可能掩盖模型对少数类别的不良表现。
二、精确率、召回率与 F1 分数
1. 精确率(Precision)
精确率衡量模型预测为正例的样本中,实际为正例的比例:
应用场景:当假正例的代价很高时(如垃圾邮件检测),精确率更为重要。
2. 召回率(Recall)
召回率衡量实际为正例的样本中,被模型正确预测为正例的比例: