准确率、精确率、召回率、F1
在搭建一个AI模型或者是机器学习模型的时候怎么去评估模型,比如我们前期讲的利用朴素贝叶斯算法做的垃圾邮件分类算法,我们如何取评估它。我们需要一套完整的评估方法对我们的模型进行正确的评估,如果模型效果比较理想的话则可以放到线上使用,如果不理想的话则需要反复的去调整相关参数进行训练直到达到目的。
而准确率、精确率、召回率和F1值则是选出目标的重要评价指标,我们看下这些指标的定义:
- 若一个实例为正类,实际预测为正类,即为真正类(True Positv TP)
- 若一个实例为负类,实际预测为负类,即为真负类(True Negative TN)
- 若一个实例为负类,实际预测为正类,即为假正类(False Positv FP)
- 若一个实例为正类,实际预测为负类,即为假负类(True Negative, TN)
如下表所示,其中1代表正类、0代表负类
预测 | ||||
---|---|---|---|---|
1 | 0 | 合计 | ||
实际 | 1 | True Positive TP | False Negative FN | Actual Positive(TP+FN) |
0 | False Positive FP | True Negative TN | Actival Netagive(FP+TN) | |
合计 | Predicted Positive(TP+FP) | Predicted Negative(TN+FN) | TP+FN+FP+TN |
TP:正确的匹配数目
FP:误分类,匹配不正确的数目
FN:漏分类,没有找到正确匹配的数目
TN:正确的非匹配数目
针对正样本的相关计算,负样本可以同样方法计算
准确率(正确率)=所有预测正确的样本/总的样本 (TP+TN)/总
精确率=将正类预测为正类/所有预测为正类 TP/(TP+FP)
召回率=将正类预测为正类/所有真正的正类 TP/(TP+FN)
F值=精确率*召回率*2/(精确率+召回率) (F值为精确率和召回率的调和平均值)
上述计算是针对二分类的方式进行计算,如果是针对多分类的方式,可以针对每一个类别分别计算精确率、召回率,而后计算各个分类的F值,最后将F值取平均即可。