分类模型的评判标准
分类的结果,可以总结有四种,使用混淆矩阵展示:行表示实际类别,列表示预测类别。
Confusion Matrix | |||
Total | Predicted | ||
Positive | Negative | ||
---|---|---|---|
Actual | Positive | TP | FN |
Negative | FP | TN |
其中,
- True Positive (TP):模型正确预测了正例;
- True Negative (TN):模型正确预测了负例;
- False Positive (FP):模型错误预测为了正例(本应该是 0,却预测成了 1);
- False Negative (FN):模型错误预测为了负例(本应该是 1,却预测称了 0);
Accuracy
准确率。是对预测结果的整体评价。一共做了 100 个预测,其中 80 个是对的,准确率为 80%。
\[\text{accuracy} = \frac{ \text{number of correct predictions} }{ \text{number of total predictions} }\]用混淆矩阵表示:
\[\text{accuracy} = \frac{ \text{TP} + \text{TN} }{ \text{TP} + \text{TN} + \text{FP} + \text{FN} }\]Precision
精度。在全部预测为正例的结果中,真正正确的占多少。结果中一共有 100 个正例,其中 80 个是真正的正例,精度为 80%。或者说,模型认为的正例中,有多少是真正的正例。
\[\text{precision} = \frac{ \text{TP} }{ \text{TP + FP} }\]Recall
召回。全部的正例,有多少被正确找了出来。
\[\text{recall} = \frac{ \text{TP} }{ \text{TP + FN} }\]F1-score (F-score)
通过调整分类的阈值(threshold),可以影响 precision 和 recall 的值。精度与召回通常是负相关的,F-score 可以综合二者给出一个评判标准:
\[\text{F1} = \frac{ 2 }{ \frac{1}{\text{precision}} + \frac{1}{\text{recall}} } = 2 \frac{ \text{precision} \cdot \text{recall} }{ \text{precision} + \text{recall} }\]ROC 曲线(Receiver Operating Characteristic Curve)
ROC 曲线描述的是分类模型在各个阈值下性能。横坐标为 TPR(True Positive Rate),纵坐标为 FPR(False Positive Rate)。
\[\text{TPR} = \frac{\text{TP}}{\text{TP + FN}}\] \[\text{FPR} = \frac{\text{FP}}{\text{FP + TN}}\]AUC(Area Under Curve) 为 ROC 曲线下的面积,AUC 越大模型性能越高。