Precision(查准率) 、Recall(查全率)、F1-Score(F-Measure)、Accuracy(准确率)

版权声明:欢迎转载和交流。 https://blog.csdn.net/Hachi_Lin/article/details/88628444

一、机器学习中算法常用的评测标准

在这里插入图片描述

二、Precision(查准率) and Recall(查全率)

以预测病人是否有癌症为例子,假设 y = 1 y=1 代表病人有癌症。下面是我从吴恩达老师的机器学习课程中截取的图片:
在这里插入图片描述
True Positive(真正,TP): 将正类预测为正类数
True Negative(真负,TN): 将负类预测为负类数
False Positive(假正,FP): 将负类预测为正类数→误报
False Negative(假负,FN): 将正类预测为负类数→漏报
在这里插入图片描述

 precision  =  true positives   no. of predicted positive  = TP TP+FP  recall  =  true positives   no. of actual positive  = TP TP+FN \begin{aligned} & \text { precision } = \frac { \text { true positives } } { \text { no. of predicted positive } } = \frac{\text{TP}}{\text{TP+FP}} \\ & \text { recall } = \frac { \text { true positives } } { \text { no. of actual positive } }= \frac{\text{TP}}{\text{TP+FN}} \end{aligned}

三、Accuracy(准确率)

ACC = T P + T N T P + T N + F P + F N \text{ACC}=\frac{TP+TN}{TP+TN+FP+FN}
注:准确率是我们最常见的评价指标,而且很容易理解,就是被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好。
准确率确实是一个很好很直观的评价指标,但是有时候准确率高并不能代表一个算法就好。比如某个地区某天地震的预测,假设我们有一堆的特征作为地震分类的属性,类别只有两个:0:不发生地震、1:发生地震。一个不加思考的分类器,对每一个测试用例都将类别划分为0,那那么它就可能达到99%的准确率,但真的地震来临时,这个分类器毫无察觉,这个分类带来的损失是巨大的。为什么99%的准确率的分类器却不是我们想要的,因为这里数据分布不均衡,类别1的数据太少,完全错分类别1依然可以达到很高的准确率却忽视了我们关注的东西。再举个例子说明下。在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如在互联网广告里面,点击的数量是很少的,一般只有千分之几,如果用acc,即使全部预测成负类(不点击)acc也有 99% 以上,没有意义。因此,单纯靠准确率来评价一个算法模型是远远不够科学全面的。

四、F1-Score

F1-Score可以帮助我们根据各个算法的Precision和Recall来评测一个算法的好坏。
在这里插入图片描述
F 1 S c o r e = 2 P R P + R F_1-Score = \frac{2PR}{P+R}
其中的 P P 就是Precision,而R就是Rcall。

猜你喜欢

转载自blog.csdn.net/Hachi_Lin/article/details/88628444