@Record_05_准确率(Accuracy)_精确率(Precision)_召回率(Recall)_漏报率_误报率
折腾了这么久,跟别人探讨了,自学了这么久,还是要来写一下这个博客,对自己是一种记录,希望这种记录对你有用。
混淆矩阵
不怎容易弄明白的矩阵,所以叫混淆矩阵,很多人混淆可能是看表格的方向不知道,按照下面说的,再看看能不能明白。
原始标签 | 检测成正样本 | 检测成负样本 |
---|---|---|
标签:正样本 | TP | FN |
标签:负样本 | FP | TN |
这个表格:
第2行从左往右看:
原来样本标签是正样本,通过模型后,模型检测该样本为正样本,是为真阳,TP,True Positive
原来样本标签是正样本,通过模型后,模型检测该样本为负样本,是为假阴,FN,False Negative
第3行从左往右看:
原来样本标签是负样本,通过模型后,模型检测该样本为正样本,是为假阳,FP,False Positive
原来样本标签是负样本,通过模型后,模型检测该样本为负样本,是为真阴,TN,True Negative
对于分类问题,我们关注的是正样本到底检测没检测出来。所以正,是,阳;负,是,阴。
由混淆矩阵,可以得到下面公式:
准确率_Accuracy 计算公式:
A C C = T P + T N T P + F N + F P + T N ACC=\frac{TP+TN}{TP+FN+FP+TN} ACC=TP+FN+FP+TNTP+TN
精确率_Precision 计算公式:
P r e c i s i o n = T P T P + F P Precision =\frac{TP}{TP+FP} Precision=TP+FPTP
召回率_Recall 计算公式:
R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=TP+FNTP
误报率计算公式:
F N R = F N T P + F N = 1 − P r e c i s i o n FNR = \frac{FN}{TP+FN}=1-Precision FNR=TP+FNFN=1−Precision
漏报率计算公式:
F P R = F P T P + F P = 1 − R e c a l l FPR = \frac{FP}{TP+FP}=1-Recall FPR=TP+FPFP=1−Recall
以下补充内容,仅供参考!不负法律责任!
下面补充是我自己的理解,你觉得能帮助你理解就行,你要是大牛看不惯,可以忽略。
漏报:
漏报的含义是:原来标签是正样本,模型如果检测它是正样本,那么应该报警。
比如吸烟分类,吸烟是正样本,不吸烟的其他所有都是负样本。
模型在检测时,如果检测到吸烟,就要报警:请勿吸烟!
这就是报警,报警报告的是正样本。
原来是正样本,结果模型没检测出来它是吸烟样本,就是漏报。
漏报率计算公式:
F N T P + F N \frac{FN}{TP+FN} TP+FNFN
也就是:
1 − R e c a l l = 1 − T P T P + F N = F N T P + F N 1-Recall=1-\frac{TP}{TP+FN}=\frac{FN}{TP+FN} 1−Recall=1−TP+FNTP=TP+FNFN
误报:
误报的含义是:原来标签是负样本,模型如果检测它是正样本,也是报警,只不过是误报。
比如吸烟分类,吸烟是正样本,不吸烟的其他所有都是负样本。
如果司机吃苹果,模型检测司机吃苹果是吸烟,就是误报。
原来是负样本,结果模型检测出来它是吸烟样本,就是误报。
误报率计算公式:
但是,很多人要把这些公司在python代码中实现出来,用FNR,FPR表达出来的含义在网上一搜好多版本,以下是我的理解。不喜忽略!不负法律责任!
FNR,是False Negative Rate的英文简写,有两个表达式:
F
N
R
p
o
s
i
t
i
v
e
=
F
N
T
P
+
F
N
FNR_{positive} = \frac{FN}{TP+FN}
FNRpositive=TP+FNFN
F
N
R
n
e
g
t
i
v
e
=
F
N
T
N
+
F
N
FNR_{negtive} = \frac{FN}{TN+FN}
FNRnegtive=TN+FNFN
通常默认FNR_positive为漏报率,即漏报率默认是FNR表示,即漏报率:
F N R = F N T P + F N FNR = \frac{FN}{TP+FN} FNR=TP+FNFN
FPR,是False Positive Rate的英文简写,也是两个表达式:
FPR却是有两个公式,我标记成如下:
F
P
R
p
o
s
i
t
i
v
e
=
F
P
T
P
+
F
P
FPR_{positive} = \frac{FP}{TP+FP}
FPRpositive=TP+FPFP
F
P
R
n
e
g
t
i
v
e
=
F
P
T
N
+
F
P
FPR_{negtive} = \frac{FP}{TN+FP}
FPRnegtive=TN+FPFP
通常默认FPR_positive为漏报率,即误报率默认是FPR表示,即误报率:
F P R = F P T P + F P FPR = \frac{FP}{TP+FP} FPR=TP+FPFP
文章最后有微信公众号:惟CPP,欢迎关注,一起交流学习进步~