zoukankan      html  css  js  c++  java
  • 准确率、精确率、召回率的含义

        最近在看机器学习的,要理解准确率、精确率、召回率的含义,首先要理解 TP、FN、FT 和  TN 的含义。 TP、FN、FT 和  TN 这几个概念一直搞得不太清楚。记录一下。看了别人的文章,举的例子不是太好,不太容易理解 。

        假设有100个人,实际上50个人喝酒了,50个人没喝。我们有一个判定是否喝酒的模型,通过这个模型我们的判定结果如下: 

                60个人喝了(其中 40 个人是真正喝了酒的); 40 个人没喝(其中10个人其实是喝了的)。

        那么前面 4个名词中,第一个字母 T 和 F 表示的意思是我们预测的是不是正确。预测是喝了酒的为 P,预测没喝酒的为N。那么此例中这个概念的混淆矩阵如下:

     TP: 预测喝了酒(P),实际喝了酒,预测正确(T)

     FP: 预测喝了酒(P),实际没喝酒,预测错误(F)

     FN: 预测没喝酒(N),实际喝了酒,预测错误(F)

     TN: 预测没喝酒(N),实际没喝酒,预测正确(T)

    那么:

    准确率(Accuracy): 就是判断正确的占总数的比例。

           Accuracy=(TP+TN) / (TP+FP+TN+FN) =  (40+30)/100 = 70%

    虽然准确率能够判断总的正确率,但是在样本不均衡的情况下,并不能作为很好的指标来衡量结果。

    比如在样本集中,正样本有90个,负样本有10个,样本是严重的不均衡。对于这种情况,我们只需要将全部样本预测为正样本,就能得到90%的准确率,但是完全没有意义。对于新数据,完全体现不出准确率。因此,在样本不平衡的情况下,得到的高准确率没有任何意义,此时准确率就会失效。所以,我们需要寻找新的指标来评价模型的优劣。

    精确率(Precision): 是针对预测结果而言的,其含义是在被所有预测为正的样本中实际为正样本的概率。精确率代表对正样本结果中的预测准确程度。

           P=TP / (TP+FP) = 40/(40+20) = 66.7%    此例中表示预测喝酒的人数中有多少人是真正喝酒的比例。

    召回率(Recall):   召回率是覆盖面的度量。衡量了分类器对正例的识别能力。也叫查全率。

           R=TP / (TP+FN)= 40/(40+10) = 80%      此例中表示我们预测出的喝酒的人数占真正喝酒的人数的比例。     

    综合评价指标: 

    精确率和召回率又被叫做查准率和查全率,可以通过P-R图进行表示

    如何理解P-R(精确率-召回率)曲线呢?或者说这些曲线是根据什么变化呢?

    以逻辑回归举例,其输出值是0-1之间的数字。因此,如果我们想要判断用户的好坏,那么就必须定一个阈值。比如大于0.5指定为好用户,小于0.5指定为坏用户,然后就可以得到相应的精确率和召回率。但问题是,这个阈值是我们随便定义的,并不知道这个阈值是否符合我们的要求。因此为了寻找一个合适的阈值,我们就需要遍历0-1之间所有的阈值,而每个阈值都对应一个精确率和召回率,从而就能够得到上述曲线。

    根据上述的P-R曲线,怎么判断最好的阈值点呢?首先我们先明确目标,我们希望精确率和召回率都很高,但实际上是矛盾的,上述两个指标是矛盾体,无法做到双高。因此,选择合适的阈值点,就需要根据实际问题需求,比如我们想要很高的精确率,就要牺牲掉一些召回率。想要得到很高的召回率,就要牺牲掉一些精准率。因此我们就需要综合考虑他们,最常见的方法就是F-Measure(又称为F-Score)。

    F-Measure是Precision和Recall加权调和平均:
    这里写图片描述

    当a 取 1时,就是 F1分数(F1-Score)。F1分数同时考虑精确率和召回率,让两者同时达到最高,取得平衡。

        

    另外 Roc 、AUC 曲线见 https://weizhixiaoyi.com/archives/275.html

  • 相关阅读:
    输入一个1-9的数i,再输入一个数字n,表示 i 出现的次数,输入的2个数字 i 和 n 组合成如下表达式:如i=2,n=4,2+22+222+2222=?,计算结果是多少?
    现有数列1/2;2/3;3/5;5/8······第十次出现的是什么?
    猜数游戏:范围时1-100,若错误就提示大了还是小了,猜对则结束,允许猜10次,游戏结束后对玩家评价:1次猜对;5次内猜对;10次内猜对;没有猜对
    登录模拟,用户名和密码输入错误后给出相关错误提示,并告知还有多少次错误机会,如果5次验证失败将冻结账户
    30人围坐轮流表演节目,按顺序数1-3,每次数到3的人就表演节目,表演过的人不再参加报数,那么在仅剩一个人没有表演的时候,共报数多少人次?
    docker 自定义镜像
    php 镜像richarvey/nginx-php-fpm的ngnix配置
    php tp5常用小知识
    php Tp5下mysql的增删改查
    php 面试常问问题
  • 原文地址:https://www.cnblogs.com/langfanyun/p/13750948.html
Copyright © 2011-2022 走看看