精确率 召回率 F1(详细)

    xiaoxiao2021-03-26  16

    精确率召回率等相关知识点经常出现在笔试题中,如果仅考查精确率召回率并不难理解记忆。但是有时结合ROC等知识点时,TP,NP,TN,FN,4个不易区分的符号及各种比率会对初学者的理解产生干扰,本文将几个知识点结合起来举例解释,希望能方便大家理解记忆。

    背景

    当我们那一个已知结果的数据对算法进行测试时,不难发现算法对数据判断出现的错误。 当待处理数据简单分为正负两类时,显然 对于原数据来说,只有正负两种可能。对于判断结果来说,也是正负两种可能。 但是当我们站在”上帝”的角度上来看,原数据的正负,和判断结果的正负会把整个数据分成4份。 TP : True Positive (真正, TP)被模型预测为正的正样本;可以称作判断为真的正确率 TN : True Negative(真负 , TN)被模型预测为负的负样本 ;可以称作判断为假的正确率 FP : False Positive (假正, FP)被模型预测为正的负样本;可以称作误报率 FN : False Negative(假负 , FN)被模型预测为负的正样本;可以称作漏报率

    总结:两个词中,第二个词是预测结果(算法判断的)。2个词合在一起的是原数据事实。

    例如:10个样本里,有6个正,4个负。(事实) 经过一个机器学习算法判断后,认为有7个正,3个负。(判断的)

    假设: TP:被预测为正的7名样本里,本来就是正,又被预测为正的有5人。 TN:被预测为负的3名样本里,本来就是负,又被预测为负的有2人。 FP:被预测为正的7名样本里,本来就是负,又被预测为正的有2人。 FN:被预测为负的3名样本里,本来就是正,又被预测为负的有1人。

    公式

    精确率Precision Rate: P=TP/(TP+FP) 召回率Recall Rate: R=TP/(TP+FN)

    精确率体现的是算法查询的正确率,在被判断为正的所有样本中,判断正确(事实)的比率。R=5/(5+2),是结合了事实与判断的量。 召回率体现的是算法的“清剿”能力。分母中的TP和FN都是事实上为正的样本,而分子与精确率相同为TP。含义是在一群样本中,把所有该找出来的量悉数找到的能力。是只有事实的量。 举个直观的例子,当查到1000个地区可能有地震灾害,此时预测要重视精确率,还是召回率?这种情况是宁可多准备,也不能不准备等地震来了无所适从。也就是说,要把样本中所有的“阶级敌人”全部查出来,肯定是要保证召回率。 那么什么时候召回率最高(为1),就是把1000个地区全预测为地震,反正1000个样本里肯定把地震的地方包括全了。此时精确率的作用就看出来了。预测数为1000,其中TP为10,1%的精确率,也就是说没什么可参考性。

    有些同学就问了,那我怎么衡量精确率和召回率相互之间的重要性呢?下面引入F1-score。

    F1-score:

    * 2PR/P+R=2/(1/P+1/R) * F1-score是P和R的调和平均数,那么也就容易理解,F1-score就是一个认为精确率和召回率同样重要的量。

    那么,如果我要把召回率的重要性提高为原来的一倍该如何处理呢?此时引入

    Fβ-score

    Fβ-score: 1+β2(PR)/(β2P+R)=(1+β2)/(β2/R+1/P) 形式上看是一种加权的调和平均。因此, 当β等于2时,R的重要性比P大一倍。 当β等于0.5时,P的重要性比R大一倍。

    如果只有这么几个公式记忆起来自然不难,可惜,接下来的ROC,PRC,AUC。又会引入一些其他的统计量。见下文。

    转载请注明原文地址: https://ju.6miu.com/read-660255.html

    最新回复(0)