关于模型评价标准的例子


昨天一道笔试面试题,举例解释说明 如下模型评价指标 的含义
accuracy = (TP + TN) / (TP + FP + TN + FN)
TPR = TP /(TP + FN) 
TNR = TN /(TN + FP) 
precision = TP / (TP+FP)

举什么例子呢? 先想到了苹果。 阿信不是再吃一颗苹果么,电影天浴里受到伤害的小姑娘 不吃默默关心她的人为她掏的鸟蛋,而选择别人留下的一颗苹果。。 呵呵,扯远了

一箱苹果,其中实际90个好苹果,10个坏苹果。模型预测为92个好苹果,8个坏苹果。
那么:easy
accuracy 表现模型整体的预测能力 
         =(猜中好苹果90个+猜中坏苹果8个) / (猜中好苹果90个+猜错成好苹果的2个(实际为坏的)+ 猜中坏苹果8个+猜错成坏苹果的0个(实际为好的))
         = 98/100 = 98%
TPR     表现模型对好苹果的辨别能力  (敏感度)
         = 猜中好苹果90个 / 实际真正好苹果90个
         = 90/90 = 100%
TNR     表现模型对好苹果的辨别能力   (特异性)
         = 猜中坏苹果8个 / 实际真正坏苹果10个
         = 8/10 = 80%
precision  表现模型 对好苹果的的判断有效性
       =  猜中好苹果90个 / (猜中好苹果90个+猜错成好苹果的2个(实际为坏的))
       = 90/92 = 97.8%
      
其实写着写着,觉得有点不对劲了。预测92个好苹果,就一定是有90个预测正确吗?
如果1-10号苹果为实际的坏苹果,模型预测的92个好苹果分别为1-5和11-97,那正确数量只有87个呀。
例子改为60个苹果 40个梨,也有同样的问题。。 逻辑过程好像没问题啊,问题在哪里?
好一会(近半小时)都没绕过来,换例子吧:

检测某种疾病,实际10个阳性,90个阴性。模型输出为13个阳性,87个阴性。
好像能说通了:
accuracy 表现模型整体的预测能力 
         =(猜中阳性10个+猜中阴性87个) / (猜中阳性10个+猜错成阳性的3个(实际为阴性的)+ 猜中阴性87个+猜错成阴性的0个(实际为阳性))
         = 97/100 = 97%
TPR     表现模型对阳性疾病(患病)的辨别能力  (敏感度)
         = 猜中阳性10个 / 实际真正阳性10个
         = 10/10 = 100%
TNR     表现模型对阴性疾病(未患病)的辨别能力   (特异性)
         = 猜中阴性87个 / 实际真正阴性90个
         = 87/90 = 96.7%
precision  表现模型 对阳性疾病的 判断有效性
       = 猜中阳性10个 / (猜中阳性10个+猜错成阳性的3个(实际为坏的))
       = 90/93 = 96.8%
      
当时不知为何这个例子好像又能讲通。今天想明白了,因为去判断疾病是阳性还是阴性心理上一般觉得是根据某个阈值来的,最后算出来的结果 大于阈值则认为阳性,小于阈值则认为阴性。
而好苹果 坏苹果 ,苹果和梨的例子中,没有阈值的概念。 判断 1-5和11-97 号苹果是好苹果,还是1-92号苹果是好苹果,判断的依据 如果没有说明是某一个经过分析处理后的连续值,就容易有这种错乱的感觉。

另外,真正,真负,假真,假负, 一定要记住第一个字是判断,第二个字是实际。
真正,是判断正确的 实际正
真负,是判断正确的 实际负
假正,是判断错误的 实际正
假负,是判断错误的 实际负
我们总希望 判断正确的越多越好,即真正真负越多越好,也即灵敏度特异度越高越好
但实际调整阈值时,这两个有一个好另一个必然会差。  要根据模型实际运用的场景来看,是灵敏度(识别出来正类)更重要吗? 还是 其他类型的指标更重要。

猜你喜欢

转载自blog.csdn.net/anthea_luo/article/details/80708610