F1 score 与 平均精度 mAP 可以衡量分类模型的性能。
首先先看精确率与召回率的概念。
精确率与召回率
对于某方概率极低的逻辑回归(例如某种罕见病症的确诊),单纯的准度(是否能正确判断病人是否得病)并不足够。毕竟,若算法只会给出 negative 的判断也能拥有高准度。
真阳性(TP),假阳性(FP),真阴性(TN),假阴性(FN)。
精确率(precision),等于 正确预测的阳性(TP)/所有预测到的阳性(TP+FP),体现了模型对负样本的区分能力。精确率越高,说明模型对于预测为正类别的样本更加谨慎,很少将负类别的样本错误地预测为正类别。
召回率(recall),等于 正确预测的阳性(TP)/样本中所有真实的阳性(TP+FN),体现了模型对正样本的识别能力。召回率越高,说明模型对于实际为正类别的样本更加敏感,成功捕捉了更多正类别的样本。
精确率更应该叫做 “查准率”,指阳性预测的准度
召回率更应该叫做 “查全率”,指正确阳性预测的覆盖程度
F1 score
F1 score 是精确率和召回率的一个加权平均。
\[F_1=\frac{2\times \text{precision} \times \text{recall}}{\text{precision}+\text{recall}} \]F1 score 越接近 1,模型性能越理想(同时达到最大的 Precision 和 Recall)。
平均精度 mAP
平均精度(Average Precision,mAP),用于综合考虑模型在不同类别上的准确度和召回率。
对于分类问题,模型使用不同的 threshold 会得到不同的 precision 和 recall,画在 precision-recall 图表中可以得到一个曲线。最理想的情况下,这个曲线与 x y 轴会形成一个正方形,面积为 1。mAP 通过以下算式计算这个曲线与 x y 轴形成的面积:
\[\text{AP}=\sum_n(R_n-R_{n-1})P_n \]- \(n\) 代表选择的第 \(n\) 个 threshold
- \(R_n\) 代表第 \(n\) 个 threshold 下的 recall
- \(P_n\) 代表第 \(n\) 个 threshold 下的 precision
其值越大(越接近 1),模型综合性能越好。