机器学习:评判模型的几个指标——PR,ROC,F-easure

  小明是AI小学的一个小学生,在他的班里有男生80人,女生20人,共计100人。第一天上学,小明被要求通过自身观察,找出所有的女生来。
  现在,小明挑选出了50个人,其中20人是女生,另外还错误地把30个男生也当作女生挑选了出来了。
  作为评估者的你需要来评估下他的工作,用一些不同的标准来衡量他这次划分的准确度。

1. 精确率与召回率

  首先登场的是两个最直观的比率,精确率和召回率(Precision and Recall)。小明分出来的“女生”中,真正的女生所占的比例就是精确率,也叫做查准率;在全班所有真正的女生中,小明正确找出来的女生所占的比例就是召回率,也叫查全率。就是说,本次分类中,小明工作的精确率和召回率分别是40%和100%。这两个比率简单粗暴地反映出一次分类的实际效果,精确率着重于结果,看看你分对了多少;召回率着重于样本,看看你分出了多少。
  另外,还有一个常见的比率是“假正例率”(FPR),代表被错分成女生的男生在所有男生中的占比,这个例子里它是30/80=37.5%。这项比率在ROC绘制时会用到。
  在实际的产业应用中,我们常常需要考虑模型的精确率和召回率,依据这两个比率绘制出的PR曲线是重要的评估指标。

2. F-Measure

  你把小明这次分类的精确率和召回率告诉了他,他觉得Precision太低了,于是决定认认真真重做一次分类,争取不要有哪怕一次错分。在长达半个小时的“全力辨识”下,他达成了目标:只找出一位同学,他确信这就是一位女生。果然,他找对了。此次分类的精确率高达100%,可以说是“弹无虚发”。但是召回率却只有不忍直视的5%,这样的模型好不好,小明你的心里没有一点数吗?
  那么问题来了,精确率和召回率在很多时候存在相互矛盾的关系,我们需要找到一个“平衡点”。F_β值可以看做是这两个比率的一种加权平均,其计算公式为:


在这里插入是图片描述

F_β值越高,分类模型的效果越好。β值是权重参数,它取1时的F_β值被叫做F1值,代表精确度和召回率在评估者的心中同等重要。
  早期人们只关注F1值,但随着机器学习逐渐渗透到各个产业领域,不同的要求产生了。
  例如一个色情网页过滤墙的设计,我们的目的是将所有涉黄的网页屏蔽,即使可能屏蔽一些看上去属于“擦边球”的正常网页,但如果出现漏网之鱼将会造成很坏的影响。因此,我们的主要任务是提升Recall值,希望屏蔽列表中包含所有不良网页,而精确度则只作为参考。那么β值应当取较大,例如β=2。
  再比如一个认定罪犯的模型,本着“疑罪从无”和绝不冤枉好人的原则,机器在认定罪犯时应当着力提升精确率,即确保选出的罪犯中没有好人,即使因此漏判了一些罪犯,也可以通过别的手段补救。那么此时β值应当取较小,例如β=0.5。

3. ROC与K-S

  在使用一个二分类模型做机器学习时,输出结果往往是连续的。我们需要人为确定一个阈值,大于此阈值的输出为1,反之输出为0。对于同一个分类模型,不同的阈值会产生不同的分类结果。对于某个取定的阈值,我们计算出此次分类的FPR和Recall,以前者为横坐标,后者为纵坐标在坐标系中标出对应的点。接着改变阈值,可以得到新的坐标点,将若干坐标点用平滑的曲线连接起来就得到这个模型的ROC曲线(Receiver Operating Characteristic curve)。一般模型的ROC曲线都长这个样子:


在这里插入图片描述

  而AUC(Aera Under Curve)顾名思义,就是ROC这条曲线下方的面积。我们认为AUC越大,这个模型的效果就越好。
  如果在某个阈值下,你既没有错分也没有漏分,换句话说,这个阈值下此模型完美地分开了样本中的两类,那么ROC曲线则会经过(0,1)这个点,它自然就会变成这样:


在这里插入图片描述

此时AUC等于1,说明这是个完美的模型,当然在实际产业应用中这样的模型是不存在的。
  这里又会出现一个问题,如果我们随便选择阈值,那么每条数据的输出都要和这个阈值做一次比较,计算量又上去了。因此,实际操作中我们往往将所有输出做一个排序,例如从大到小,再选择前10%分界线处的输出值作为阈值,这样所有排在前10%的样本就是1,其余的就是0;再选20%分界线作为阈值,以此类推。分界线在实际情况中应该取得更密一些。
  进一步地,以10%、20%这样的分界比例做横坐标,分别以FPR和Recall做纵坐标画出两条曲线,就称为这个模型的K-S曲线,一般模型的ROC曲线都长这个样子:


在这里插入图片描述

  K-S曲线可以直观的看出两个比率在何处差距最大,说明在此阈值下,模型的区分度最高,是为最优阈值。但同时,K-S曲线只能反映出哪个阈值是区分度最大的,不能反映出整个模型有多偏向于一个完美模型。所以,在实际应用中,模型评价一般需要将ROC曲线、K-S曲线、AUC指标等结合起来使用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值