举个例子,咱们想训练一个模型去诊断患者是否患有癌症。在人群中,患有癌症是一个极小几率发生的事情,好比 1000 我的中患有癌症的只有 5 人。那么在这个样本中,患有癌症的人的几率为 0.5%,正常人的几率为 99.5%,这是一个偏斜类,正结果(设为 1 )占总样本数极小。算法
若是咱们训练的机器学习模型的正确率为 99%,看似这个正确率很是高,模型表现的很好,但是考虑下面这个模型(这都算不上一个模型):令全部的结果所有输出为 0(也就是认为全部人都是没有癌症的),它的正确率会达到 99.5%,比咱们用机器学习训练的模型正确率还要高,那么这么模型就是好的吗?确定不是,这个模型什么事情都没有作!咱们被它欺骗了。微信
为了防止被结果欺骗,咱们要用到偏斜分类的偏差评估这种方法。其中用到了评估度量值:查准率(precision)和召回率(recall)。以下图:机器学习
咱们将算法预测的结果分为 4 中状况:编辑器
1.正确确定(True Positive): 预测为真,结果为真学习
2.正确否认(True Negative): 预测为假,结果为假flex
3.错误确定(False Positive): 预测为真,结果为假spa
4.错误否认(False Negative):预测为假,结果为真3d
查准率和召回率的定义已经在上图中列出来了。能够知道,查准率是在全部咱们预测结果为真的状况下,预测成功的几率;召回率是在全部实际结果为真的状况下,咱们预测成功的几率。那么回到刚才的问题,查准率是在全部咱们预测为癌症的患者中,实际患有癌症的几率;召回率是在所有实际患有癌症的患者中,咱们预测成功的几率。对于认为全部人都没有患癌症的算法,召回率为 0,那么这种算法就表现的不好,咱们就不会被算法表面的结果所欺骗。cdn
回顾逻辑回归算法:blog
当咱们把临界值 0.5 增大,查准率就会增大而召回率就会减少,当咱们把临界值 0.5 减少,查准率就会减少而召回率就会增大。
评估一个算法的好坏咱们要用到评估度量值,评估度量值是一个实数,可以评估这个算法的好坏,可是如今有两个值,咱们就没办法肯定究竟怎么选择。这时候首先想到用平均值,可是会发现,Algorithm 3 的平均值最大可是这个算法表现的是最差的,所以取查准率和召回率的平均值这种作法是不可取的。
咱们须要要用到 F1 值去计算评估度量值。根据 F1 值的定义,当查准率和召回率其中有一个为 0 时,F1 值就为 0,所以 F1 值能够做为评估度量值。
ps. 本篇文章是根据吴恩达机器学习课程整理的学习笔记。若是想要一块儿学习机器学习,能够关注微信公众号「SuperFeng」,期待与你的相遇。