混淆矩阵:
真正类(TP) 假负类(FN)
假正类(FP) 真负类(TN)
T:TRUE
F:FALSE
P:POSITIVE
N:NEGATIVE
精度:TP/(TP+FP)
召回率:TP/(TP+FN)
精度:所有被预测为正类的实例中预测正确的实例的所占比例
找回率:所有为正类中被预测为正确的比例
这么说比较拗口,举个栗子:
你有一台机器,他的功能是:判断一个水果是不是西瓜
假设这台机器的精度是0.9,召回率是0.7
精度:
此时你给这台机器一个水果,这台机器说他是西瓜,那么这太机器预测的正确率就是90%
召回率:
假设你有一堆水果给这台机器判断,只有70%的西瓜被他正确的区分为了西瓜
不同的任务需求对精度和召回率的要求也有不同,所以就涉及到了精度和召回率的权重分配问题。
再举个栗子:
比如说有个任务,要正确判断给你打来的电话是不是一个骚扰电话。这种情况下肯定精度的重要性比召回率更高,要把最可能是骚扰电话的电话给屏蔽掉,而不是为了追求尽可能屏蔽掉多的骚扰电话去把那些可能比较重要的电话给拦截掉。
再比如你家的指纹识别或者是人脸识别系统,也是对精度要求高,宁可本人错误的多刷几次才能进来,也不能让一个陌生人进来。
相反的,比如机场人脸识别要来判断一个人是不是恐怖分子,那他肯定要尽可能多的去识别出那些恐怖分子,哪怕会把一些守法市民给误认为恐怖分子,因为识别错误一个恐怖分子造成的后果可能远大于识别错误一个正常人。
当然,重要程度也只是相对的,不可能一个骚扰电话都不拦截,也不可能把所有人都识别为恐怖分子,所以选取适当的权重可以使一个要完成一个分类任务的系统性能更好。