「ML笔记」- 假阳性&假阴性

问题:机器学习里,什么是假阳性,什么是假阴性?

学习ing,在机器学习之旅,麻省博士小姐姐带我 ︿( ̄︶ ̄)︿

曾经,在 python 的机器学习开源库 sklearn 的混淆矩阵模块 scikit-learn-confusion_matrix 里,笔者常常看tn, fp, fn, tp等缩写变量,百思不得其解。

>>> tn, fp, fn, tp = confusion_matrix([0, 1, 0, 1], [1, 1, 1, 0]).ravel()
>>> (tn, fp, fn, tp)
(0, 2, 1, 1)

如下图,检索得到的网络资料,专业论述严谨准确,但解释起来冷冰冰,对我而言,仍然显得晦涩

混淆表格(有时候也称为混淆矩阵),是由false positives,falsenegatives,true positives和true negatives组成的两行两列的表格。




True positive (TP) :真实为P,预测为P
True negative (TN): 真实为N,预测为N
False positive (FP):真实为N,预测为P
False negative (FN):真实为P,预测为N

包括博客文章里解释的「猫狗识别分类」例子,听过之后,笔者依然「一头雾水」。

看过这个视频之后,豁然开朗。

ML Basics: False Positives, False Negatives

回答:假阳性False Positives&假阴性False Negatives

快乐学习,从形象的例子开始。

假设:给你一百张图片。让你来判断 -> 每张图片中是否有人类?

这个任务需要预测两种情况——有人&没人,叫做二元分类。

  • 图片里有人,你识别「有人」——叫做「真阳性(True positive)」
  • 图片里没人,你识别「没人」——叫做「真阴性(True negative)」


  • 图片里没人,你识别「有人」——叫做「假阳性(False postive)」


  • 图片里有人,你识别「没人」——叫做「假阴性(False negative)」

总结:

  • 预测正确,以「True」开头。
  • 预测错误,以「False」开头。
  • 预测结果是阳性(比如「有人」、「患病」),以「 postive」结尾。
  • 预测结果是阴性(比如「没人」、「无病」),以「 negative」结尾。

术语:准确率(Accuracy)

正确识别的图片的百分数——准确率(Accuracy)= TP+TN / TP+TN+FP+FN

误区:TP&TN 比 FP&FN 更重要

比如,在医学影像诊断疾病的应用中。

对于没有疾病的监测者,预测 TA 可能有病,需要进一步检查。这个无伤大雅。
但对于患病的监测者,预测 TA 没有疾病风险,那就是严重问题。

我们会更关注「假阴性率(False Negative Rate)」 = FN/FN+FP
换句话说,我们关注——对于多少包含患病风险的检测者,我们预测错误的比例是多少?

在安全防护领域,「假阳性率」需要关注:

对于,自己手机的指纹识别功能,识别错了自己的指纹,这是「假阴性」,几秒钟之内多按几次,也能解锁手机,那也还好。
但如果,用别人的指纹,也能解锁你的手机。那就问题严重了,这是「假阳性」。

这个例子里,我们会更关注「假阳性率(False Postive Rate)」 = FP/FP+TN。换句话说,我们关注——对于多少不是本机主人指纹的打开尝试,我们预测错误的比例是多少?

总结:

  • 在智能医疗领域,比如患病风险监测的应用,我们会更关注「假阴性率(False Postive Rate)」,对于多少包含患病风险的检测者,我们预测错误的比例是多少?备注:阴性定义是——检测者没有患病风险,无需进一步检查。
  • 在安全防护领域,比如指纹解锁功能,我们会更关注「假阳性率(False Postive Rate)」,对于多少不是本机主人指纹的打开尝试,我们预测错误的比例是多少?备注:阳性定义是——指纹是本机主人的。

changelog

19.06.07 init
19.07.11 publish

你可能感兴趣的:(「ML笔记」- 假阳性&假阴性)