精确率,准确率和召回率

1,这三个率能干啥?

这三个率能比较一个模型的好坏。

举个栗子,我有10个香蕉,1代表好香蕉,0代表坏香蕉,它们依次排列如下:

1  1  1  1  1  0  0  0  0  0

我让a模型帮我分出好香蕉,它给出这样的结果

1  1  1  1  0  0  0  0  0  1

好吧,让我们分析一下a模型干的活。

我们大致可以分为如下四种情况:

本来是好香蕉,a也认为是好香蕉,有4个

本来是好香蕉,a认为是坏香蕉,有1个

本来是坏香蕉,a也认为是坏香蕉,有4个

本来是坏香蕉,a认为是好香蕉,有1个

好吧,看晕了,是时候引进一些科学的思想了!我们把四个类型按照实际值和预测值进行系统化分类:

    预测 预测  
    1 0 合计
实际 1 TP FN actual positive
实际 0 FP TN actual negative
合计   predicted positive predicted negative 总的样本数

得出a模型的数据如下:

tp:4

fn:1

fp:1

tn:4

类分好了,开始分析吧

2,精确率

精确率是相对于预测结果而言的,它表示的是预测为正的样本中有多少是对的;

精确率的分子是识别正确的正样本数量,分母是模型认为的正样本数量

P=TP/(TP+FP)

a模型的精确率应该是:4/(4+1)=4/5

3,召回率

召回率是相对于样本而言的,即样本中有多少正样本被预测正确了;

召回率的分子是识别正确的正样本数量,分母是实际上有多少正样本。

R= TP / (TP+FN)

a模型的召回率应该是:4/(4+1)=4/5

4,准确率

准确率是指有在所有的判断中有多少判断正确的,即把正的判断为正的,还有把负的判断为负的;

准确率的分子是识别为正的正样本数量加上识别为负的负样本数量,分母是样本总数。

P=(TP+TN) / (TP+TN+FN+FP)

a模型的准确率应当是:(4+4)/10=4/5

好的,a模型的精确率,召回率和准确率都是4/5,

我又让b模型帮我分香蕉,香蕉还是那些香蕉,排列也没变,为了方便看,复制如下

1  1  1  1  1  0  0  0  0  0

b给出的结果

1  0  0  0  0  0  0  0  0  0  

根据如上的算法,我们得出b的三率:

精确率:1

召回率:1/5

准确率:3/5

那么问题来了,a模型和b模型,哪个比较好?

看精确率是b高,看召回率是a高,这可咋整?

5,平均数算法

精确率暂时不做考虑,让我们来对a和b的精确率和召回率进行分析

1),算数平均数,(对精确率和召回率求算数平均数)

a模型:4/5

b模型:3/5

a模型得分80,b模型得分60。但是很明显。b模型配不上60分。我们考虑换个算法

2),几何平均数,就是n个项相乘然后开n次方

a模型:0.8*0.8然后开方,得到0.8

b模型:1*0.2然后开方,得到0.44

a模型仍旧是80,b模型这次只得了44分。感觉舒服一些了,还有什么算法呢?

3),调和平均数,又称倒数平均数,是总体各统计变量倒数的算术平均数的倒数。

解释一下,就是n个样本先求倒数,然后求和除以n,然后对结果求倒数。

a模型:(5/4+5/4)/2然后求倒数,得到4/5

b模型:(1+5)/2然后求倒数,得到1/3

a模型仍旧是80,b模型这次33分,这回舒服多了。

顺带说一声,三个平均数对极小值的敏感程度为:调和平均数>几何平均数>算数平均数

猜你喜欢

转载自www.cnblogs.com/0-lingdu/p/12671727.html