召回、精确、准确,这些让人头大的概念一文全讲清楚

本文始发于个人公众号:TechFlow,原创不易,求个关注


今天是机器学习真题的第17篇文章,我们来讲讲机器学习模型的评估。

在之前的文章当中我们已经介绍了好几个模型了,有朴素贝叶斯、KNN、KMeans、EM还有线性回归和逻辑回归。今天我们来和大家聊聊该怎么评估这些模型。

均方差

这个概念很简单,它和回归模型当中的损失函数是一样的。可以理解成我们预测值和真实值之间的偏差,我们用y表示样本的真实值,y_表示模型的预测值,那么均方差可以写成:

M S E = 1 m ∑ i = 1 m ( y − y _ ) 2 MSE= \frac{1}{m}\sum_{i=1}^m (y-y\_)^2 MSE=m1i=1m(yy_)2

这里的m是样本的数量,是一个常数,我们也可以忽略,如果忽略的话就是平方差和,好像并没有一个专门的术语。而且如果不算均值的话,可能这个和会很大,所以通常我们会计算均值。

这里的MSE是mean square error的缩写,也就是平均方差的意思。我们都知道方差在统计学当中表示样本距离均值的震荡程度,方差越大,表示一个指标越不稳定,波动幅度越大。在回归模型的场景当中,我们衡量的不是距离均值的离散程度,而是距离实际值的离散程度。这两者的含义非常近似,应该不难理解。

均方差越小说明模型距离真实值越接近,所以它既可以作为模型训练时候的损失函数,又可以作为我们人工审查模型效果的参考。

回归模型一般使用的指标就是均方差,而分类模型则要复杂得多,会涉及好几个指标,我们一个一个来看。

TP,TN,FP和FN

这四个值看起来傻傻分不清楚,但是一旦我们理解了它们的英文,其实很好懂。T表示true,也就是真,那么F自然表示false,也就是假。P表示positive,可以理解成阳性,N就是negative,就是阴性。这里的阴阳没有逻辑上的含义,表示的只是类别,我们也可以理解成01或者是甲乙,因为没有逻辑因素,所以叫什么都一样。

所以这四个就是真假和阴阳的排列组合,有T的都表示真,可以理解成预测正确。比如TP就是真阳,也就是说检测是阳性,实际上也是阳性。同理,TN就是真阴,检测是阴性,实际上也是阴性。有F则表示预测错误,FP是假阳,也就是检测是阳性,但是实际上是阴性,表示检测错了。同理,FN是假阴,检测是阴性,但是实际上是阳性。

我们用医院检测代入这几个值当中一下就理解了,TP和TN表示检测试剂给力,检测准确,检测是阴就是阴,是阳就是阳。而FP和FN说明检测试剂不行,检测错了,要么就把没病的检测出了有病,要么就是明明有病没检测出来。显然在医疗检测的场景当中,假阳是可以接受的,假阴不行。因为假阳我们还可以再检测,来确定究竟是阴还是阳,如果假阴放过了病例会对病人产生不好的影响,所以一般来说医疗检测试剂都会比标准更加敏感,这样才能尽量不放过漏网之鱼。

召回率

召回率的英文是recall,我觉得这个词翻译得很好,中文的意思和英文基本一致,也有的教材当中翻译成查全率,我感觉差了点意思,还是叫召回率更加信雅达一些。

我们假设一个场景,比如说甲是一个排长,手下有10个小兵,有一个任务需要甲召集所有成员去执行。甲一声令下,召来了8个。那么召回率就是80%。我们放入机器学习的场景当中去也是一样的,在二分类场景当中,一般情况下模型考虑的主要都是正例。可以理解成沙里淘金,负例就是沙,一般价值不大,而金子就是正例,就是我们需要的。所以召回率就是我们预测准确的正例占所有正例的比例。

我们把上面的TP、TN、FP和FN代入计算,我们可以得到:

r e c a l l = T P T P + F N recall = \frac{TP}{TP+FN} recall=TP+FNTP

TP就是我们预测准确的正例,也就是被我们召回的部分,那么所有的正例有多少呢?答案是召回的正例加上没有召回的正例,没有召回的正例说明预测错了,预测成负例了。但是它们并不是负例,所以就是假阴性的样本,自然也就是FN。这里有一点点绕,关键点是召回是针对正例的,不操心负例的情况。就好比你去淘金,你显然不会关心沙子的情况,只会关心金子有没有捞到,一个意思。

精确率和准确率

你可能在很多机器学习的书本当中看到过这两个值,有可能你看的时候还记得它们之间的区别,但是看完之后就忘记了,甚至有可能从此陷入了混淆的状态。这并不稀奇,我也经历过,甚至我在面试的时候还搞错了。

这里面的原因很大一部分在于翻译问题,这两个值翻译得太接近了。我们从中文上很难区分出精确率和准确率有什么差别,在我们看来,这两个词是等价的,然而英文当中这两个词是做了区分的。所以我们要搞清楚这两者,需要来看英文的解释,而不是只是记住一个概念。

在英文当中,精确率的英文是precision,词典当中的解释是:precision is defined as the proportion of the true positives against all the positive results (both true positives and false positives). 翻译过来是所有预测为正例的样本当中,正确的比例

准确率英文是accuracy,英文解释是:accuracy is the proportion of true results (both true positives and true negatives) in the population. 翻译过来也就是预测结果准确的概率,既然是预测结果准确,那么显然既包含了正例也包含了负例。

从英文的描述上我们可以明显地看出这两个概念的差异,两个都是预测正确的部分,但精确率只针对正例,而准确率针对的是所有样本,既包含正例也包含负例。我个人觉得这两者翻译成筛选正确率和判断正确率比较容易理解一些,如果只有精确率和准确率可能还好,再加上上面说的召回率,可能真的要晕菜的。

我们来举一个例子,来把这三个指标都说清楚。

假设在国共内战期间,tg要抓军统的特务,已经锁定了一个村子中的100个百姓,交给甲乙两个人去找出特务。其中甲挑选了18个人,其中有12个特务,乙呢挑选了10个人,其中有8个特务。假设我们知道一共有20个特务,那么请问,这两个人的召回、准确和精确率分别是多少?

我们先来看甲,我们先从简单的召回开始,既然一共有20个特务,甲找出了其中的12个,那么召回率就是12/20 = 0.6。精确是筛选正确率,我们一共筛选出了18人,其中有12个是正确的,所以精确率是12/18 = 2/3。准确率呢是整体的正确率,它判断正确了12个特务和80个普通百姓,准确率是(12 + 82 - 8) / 100,也就是86%。

我们再来看乙,它的召回率是8 / 20 = 0.4,精确率呢是8 / 10 = 0.8,准确率是(8 + 90 - 12) / 100 = 86%。

从上面这个例子当中,我们可以得到精确率和准确率的公式。

其中精确率是筛选正确的概率,就是筛选正确的数量除以筛选出来的样本数,筛选正确的数量自然就是TP,筛选出来的总数除了正确的还有错误的,筛选错误的也就是FP,所以:

p r e c i s i o n = T P T P + F P precision = \frac{TP}{TP+FP} precision=TP+FPTP

准确率是整体上来正确率,也就是所有正确的除以所有样本数量:

a c c u r a c y = ( T P + T N ) / ( T P + T N + F P + F N ) accuracy = (TP+TN) / (TP+TN+FP+FN) accuracy=(TP+TN)/(TP+TN+FP+FN)

recall和precision的取舍

我们继续研究刚才的例子,从甲乙两人的结果当中我们会发现他们两人的准确率都很高,都是86%。但是你会发现这个值没什么意义,因为我如果一个特务也没抓出来,准确率一样可以有80%。因为负样本太多了,拉升了整体的准确率,并不能说明问题。如果负样本占据的比例还要大,那么准确率还会进一步提升。

比如在医疗行业当中,一些疾病的检测看准确率是没有用的,因为发病率本身并不高,大量的都是负样本。如果啥也检测不出来,一样可以得出很高的准确率。明白了这点之后,也会减少很多忽悠,比如很多假药或者假仪器骗子用准确率来说事欺骗消费者。

在负例不重要的场景当中,我们一般不会参考准确率,因为会受到负例的影响。那么recall和precision这两个值我们应该参考哪个呢?

我们再回到问题的场景当中,甲乙两个人,甲的召回更高,20个特务里找到了其中的12个。而乙的准确率更高,找出的10个人里面有8个是特务,命中率很高。那么这两个人究竟谁更强呢?

代入问题的场景,你会发现这个问题没有标准答案,答案完全取决于他们两人的上司。如果上司是一个利己主义者,更加注重业绩,宁可杀错不可放过,那么他显然会觉得甲更好,因为抓到的特务更多。如果上司是悲天悯人的仁者,他显然会更喜欢乙,少抓错一点就少给老百姓带来一些损伤。所以这并不是一个技术问题,而是一个哲学问题。

哪一个更好完全取决于看待问题的角度和问题的场景,如果我们换一个场景就不一样了。如果是疾病筛查的场景,我可能会希望召回更高的,这样可以尽可能多地召回正例。至于检测结果不准确,我们可以多测几次来增加置信度,但是如果放过了一些样本就会带来患者漏诊的风险。如果是风控场景,由于查到了作弊行为后往往会采取严厉的处罚,我们当然更关注精确率,因为一旦抓错会给用户带来巨大的损伤,可能就卸载app再也不来了,所以宁可放过也不可杀错。

有没有一个指标可以综合考虑召回和精确呢?还是有的,这个值叫做F1-score

它的定义是:

f 1 − s c o r e = 2 1 r e c a l l + 1 p r e c i s i o n = 2 ⋅ p r e c i s i o n ⋅ r e c a l l p r e c i s i o n + r e c a l l f1-score = \frac{2}{\frac{1}{recall}+\frac{1}{precision}} = \frac{2\cdot precision \cdot recall}{precision + recall} f1score=recall1+precision12=precision+recall2precisionrecall

如果熟悉数学的同学会发现f1-score本质上是recall和precision的调合平均数,我们可以用它来均衡recall和precision,方便我们做取舍。我们也可以计算一下刚才甲和乙的f1-score,计算下来,甲的f1-score是0.631,乙的f1-score是0.533,所以整体上来说还是甲更好。

recall和precision的trade-off

我们继续刚才的例子,如果你们做过许多模型,你们会发现在机器学习领域当中,recall和precision是不可调和的两个值,一个模型精确率高了,往往召回就低,而召回高了,精确率就低,我们很难做到精确和召回一起提升,这是为什么呢?

我用逻辑回归模型举例,我们来看下下面这张图:

图中的l1,l2和l3可以看成是3个不同的模型,显然我们可以看得出来l1的精确率最高,但是召回最低,而l3的精确最低,但是召回最高。

这是由两个原因导致的,第一个原因是我们的样本存在误差,尤其是临界边缘的数据由于存在误差,会互相渗透。第二个原因是模型的拟合能力有限,比如在这个例子当中,我们用的是线性模型,我们只能以线性平面划分样本。如果扩大召回,就必然会导致混入更多错误样本,如果提升精度,必然召回会下降。

显然,这是一个交易,英文是trade-off,我们不能都要,必须要在两者之间做个选择。当然如果我们换成拟合能力更强大的模型,比如gbdt或者是神经网络,会取得更好的效果,但是也并非是没有代价的,越复杂的模型训练需要的样本数量也就越多。如果没有足够的样本,模型越复杂越难收敛。

这是一个考验算法工程师的经典场景,我们需要根据我们的场景做出合适的选择。究竟是要扩大召回,还是提高精确。以逻辑回归模型举例,我们以0.5位阈值来判断是正例还是负例,理论上来说,我们提升这个阈值,就可以提升模型的精确度,但是与此同时召回率也会下降。反之,如果我们降低这个阈值,我们会得到更多的正例,同时也意味着会有更多的负例被误判成了正例,精确度也就降低。

总结

今天介绍的这几个概念不仅是机器学习基础中的基础,更是面试当中的常客,作为一个合格的算法工程师,这是必须要理解的内容。

如果觉得迷糊了,可以想想那个抓间谍的例子,非常生动有效,一定可以帮助你们加深记忆。

今天的文章就是这些,如果觉得有所收获,请顺手点个关注或者转发吧,你们的举手之劳对我来说很重要。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/11551.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Activity (一)工作流简介 :概念与由来

个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1、工作流 简单的理解就是工作的流程,这里的流程指的是,完成一个企业中具体业务的一系列工作步骤,所有的步骤合在一起就是业务从开始到结束的流转过程。从计算机系…

套用这套模板,玩转周报、月报、年报更省事

马上就要到年中了,相信不少打工人开始慢慢有些焦虑了。因为半年报又要来了。 对于大部分公司而言,不管大小,半年报是必定的。大点的公司更可怕,日报、周报、月报,还想让你当成福报;小公司稍微好点&#xf…

在数据可视化这条路上,除了天天做图表,还有更重要的3件事

在这个数据大爆炸的时代,如何从成千上万的数据中梳理出一条解决问题提升效益的最优解,成为每个职场人都需面临的挑战。 一、这是个可视化的时代! 知乎上有个热门话题:数据可视化。对此领域的问题已经将近3000条,3.3万…

区块链概念股2019:躁动与尴尬 |链捕手

在今年的区块链行业,加密货币市场风波不断,至年底一片萧条,但对二级市场中的区块链概念股而言,它们在轮番的利好刺激后受到投资者的广泛追捧,整个行业至少经历了三波上涨潮。东方财富Choice数据显示,今年初…

Chrome浏览器Postman插件安装包及安装教程

最近电脑装了新环境,以前本地的postman安装包竟然找不到了,网上费尽心力找了很多资源,终于找到纯净的安装包,绕开套路,现将Postman安装包及安装教程分享给各位,供大家学习交流~ 网盘链接: 百度网盘 请输入…

苹果限制员工使用ChatGPT等外部AI工具,只因担心泄密!

整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life) 众所周知,今天 OpenAI 官方推出了 iOS 平台的 ChatGPT 应用程序。 然而,在路透社和华尔街日报的报道中,却提及了另外一则与之相关消息——苹果已经通…

卖家需掌握的速卖通运营思路

好的产品是基础,所以卖家要注意全球速卖通的选择。如果你想做好全球速卖通选拔,你必须学习一些全球速卖通选拔的技巧。 全球速卖通选择技巧一 首先要知道买家需要什么,当前市场喜欢什么,什么产品会有更好的市场。如果反其道而行之…

【速卖通运营】速卖通怎么做?新手指导

速卖通新手卖家刚接触这个平台的时候都不知道从哪里下手。 简单来说每天的工作,监控门店的整体发展和对比同行业优秀商家的数据都是常规操作,另外也要时刻关注整体行业市场,对整个行业和品类趋势有详细了解,这样来做的话店铺不可能…

速卖通运营之选品方法和技巧

相较于往年,疫情发生以来,中国制造更多的以线上零售为窗口,更广泛的触达海外买家。这其中,跨境电商平台愈加成为各类型国货品牌的热门合作对象。 仅在2020年,包括INTERNAUL、Mould King、Teclast在内的,多…

为什么很多淘宝商家开始做速卖通?

雷军说过:如果你处在了风口上,母猪都能飞起来。 速卖通平台怎么说呢 ,就目前形势来说,阿里旗下的几个平台,淘宝,天猫,1688都是增长乏力,市场情况基本是红海了竞争非常激烈&#xf…

速卖通代运营分享速卖通店铺流量下滑原因分析!

速卖通的店主经常会遇到客流量突然下降的情况。当店铺流量突然下降时,他们也需要尽可能地找出下降的具体原因,并找出相应原因的解决办法。 下面就让我们来分享一下流量突然下滑的原因,并介绍相应的对策。 阿宝之前收到很多速卖通的卖家反馈&…

如何提升速卖通店铺流量

如何提升速卖通店铺流量 1.增加爆款数量 爆款对商家而言,不仅仅是赚钱工具,更是流量入口。但不要出了个爆款就沾沾自喜,要想着怎么利用它去创造更多的流量入口,同时也可以双管齐下,打造更多的爆款。 2.丰富产品类目…

速卖通怎么样,好做吗?

一、速卖通发展情况: 1、速卖通现状。 跨境电商(零售)真正的开始发展其实也是2010年开始的,那时候主打的平台是ebay、速卖通刚起步,亚马逊也只有很少一部分人在做。随着这几年的 发展,很多基础设施也逐渐在…

简单获取速卖通aliexpress商品详情

item_get-获得aliexpress商品详情 公共参数 请求地址 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search…

3分钟教你学会速卖通开店!干货来了!!!

3分钟教你学会速卖通开店!干货来了!!! 近期有很多小伙伴都在问我,速卖通开店怎么开?具体流程是怎样的?有些怎样的费用?今天我就给大家讲讲速卖通开店的具体流程,以及所涉…

速卖通怎么开店?从0到1的基本流程给你整理好了

跨境电商这两年可谓是各种利好政策持续出台,因此就有很多朋友后台私信东哥——怎么入驻速卖通?东哥想说,这你们可就问对人了,为了让各位速卖通朋友们快速开店,东哥整理了一份详细的速卖通开店流程,看完这篇…

速卖通卖家运营常见问题解答

关于速卖通卖家运营的常见问题,下面海熹跨境人才网整理了一些常见问题的解答,希望对大家运营解答有帮助,一起来了解一下吧。 1. 如果我们设错价格,发货会亏钱,为了避免成交不卖率,可以怎么做? 答:尝试联系买家取消订…

谷歌推出Bard大战ChatGPT,燃起来了

自ChatGPT大火之后,最近科技领域各家大厂在AI领域均有一系列动作,大家也都在观望龙头老大谷歌会如何应对。是会主动出击加入这场智能聊天机器人对搜索引擎发动的大战?还是只做为一个旁观者,看着百家争鸣? 眼看ChatGPT…

OpenAI创始人:GPT-4的研究起源和构建心法

OneFlow编译 翻译|杨婷、贾川、徐佳渝 三十年前,互联网(Web 1.0)时代开启。人们只能在笨重的电脑上用鼠标点击由HTML编写的网页文本,随后开始支持插入图片,可以上传视频,于是有了网络新闻、搜索…

复旦大学教授肖仰华:ChatGPT 浪潮下,面向大模型如何做数据治理?

嘉宾 | 肖仰华 编辑 | 伍杏玲 出品 | CSDN 由 ChatGPT 引起的大模型热潮正席卷当下。众所周知,大模型的建立离不开海量数据,且大模型的最终效果取决于数据的质量,数据越丰富、质量越高,大模型表现效果越好。那么该如何针对大模型…