【概念+实例】一文搞懂机器学习中的准确率、精确率、召回率、F1分数
【概念+实例】一文搞懂机器学习、深度学习中的准确率、精确率、召回率、F1分数
概念
机器学习中,对于二分类的问题,我们一般通过准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1分数等指标来评测模型的好坏,之前一直没搞明白是怎么计算的,今天终于弄清楚来,于是把它们记录下来。
混淆矩阵(Confusion Matrix)
先看一个概念混淆矩阵,它是一种特定的矩阵用来呈现算法性能的可视化效果,通常是监督学习(非监督学习,通常用匹配矩阵:matching matrix)。其每一列代表预测值,每一行代表的是实际的类别。这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测成另一个class)。
为什么要先看它,因为计算准确率、精确率、召回率需要通过其中不同维度的值来计算,看下表:
Positive | Negative | |
---|---|---|
True | True Positive(TP) | True Negative(TN) |
False | False Positive(FP) | False Negative(FN) |
解释一下表格中的参数概念(这里的正负只是一个代称,就是描述一个对立的概念):
True Positive(真正例, TP):将正类预测为正类数
True Negative(真负例, TN):将负类预测为负类数
False Positive(假正例, FP):将负类预测为正类数
Flase Negative(假负例, FN):将正类预测为负类数
通俗点说就是,True这一行,预测的都是正确的,正为正,负为负,False这一行,预测的都是错误的,正的被预测为负的,负的被预测为正的
准确率 Accuracy
准确率可以理解为所有数据中,预测正确的占比多少:
Accuracy = TP+TNTP+TN+FP+FN{TP+TN} \over {TP+TN+FP+FN}TP+TN+FP+FNTP+TN
精确率 Precision
精确率可以理解为正例样本在所有预测为正例样本中的占比:
Precision = TPTP+FP{TP} \over {TP+FP}TP+FPTP
召回率 Recall
召回率可以理解为预测正确的正例样本在所有真正正例样本中的占比:
Recall = TPTP+FN{TP} \over {TP+FN}TP+FNTP
F1分数
F1分数是精确率与召回率的调和平均数,就是综合考虑精确率与召回率的一个评价指标:
F1 = 2×Precision×RecallPression+Recall{2×Precision×Recall} \over {Pression+Recall}Pression+Recall2×Precision×Recall
举个例子
举个例子看一下就懂了:
序列号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
真实喜欢与否 | True | True | False | False | True | True | False | True | True | False |
预测喜欢与否 | True | True | True | False | True | True | True | False | True | False |
根据上表:
TP(真正例),原本为True,预测也为True的个数一共是5个;
FN(假负例),原本为True,预测为False的个数一共是1个;
TN(真负例),原本为False,预测也为False的个数一共是2个;
FP(假正例),原本为False,预测为True的个数一共是2个。
所以根据公式,此时:
准确率Accuracy = TP+TNTP+TN+FP+FN{TP+TN} \over {TP+TN+FP+FN}TP+TN+FP+FNTP+TN = 5+25+2+2+1{5+2} \over {5+2+2+1}5+2+2+15+2*100% = 70%
精确率Pression = TPTP+FP{TP} \over {TP+FP}TP+FPTP = 55+2{5} \over {5+2}5+25*100% = 71.4%
召回率Recall=TPTP+FN{TP} \over {TP+FN}TP+FNTP = 55+1{5} \over {5+1}5+15*100% = 83.3%
F1分数 = 2×Precision×RecallPression+Recall{2×Precision×Recall} \over {Pression+Recall}Pression+Recall2×Precision×Recall = 76.92%
总结
绝大多数情况下,在模型评价中,这些值越大越好
如果有用的话,记得点赞、评论、关注哦!
更多推荐
所有评论(0)