• 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)


    首先我们可以计算准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。也就是损失函数是0-1损失时测试数据集上的准确率。

    下面在介绍时使用一下例子:

    一个班级有20个女生,80个男生。现在一个分类器需要从100人挑选出所有的女生。该分类器从中选出了50人,其中20个女生,30个男生。

    准确率是指分类器正确分类的比例。正确分类是指正确的识别了一个样本是正例还是负例。例如分类器正确识别了20个女生和50个男生,正确识别的样本数是70个,因此该分类器的准确率是70%.

    对于二分类问题,仅仅通过准确率不能很好的衡量分类器的性能,比如:

    由准确率,我们的确可以在一些场合,从某种意义上得到一个分类器是否有效,但它并不总是能有效的评价一个分类器的工作。举个例子,google抓取了argcv 100个页面,而它索引中共有10,000,000个页面,随机抽一个页面,分类下,这是不是argcv的页面呢?如果以accuracy来判断我的工作,那我会把所有的页面都判断为"不是argcv的页面",因为我这样效率非常高(return false,一句话),而accuracy已经到了99.999%(9,999,900/10,000,000),完爆其它很多分类器辛辛苦苦算的值,而我这个算法显然不是需求期待的,那怎么解决呢?这就是precision,recall和f1-measure出场的时间了.

    在说precision,recall和f1-measure之前,我们需要先需要定义TP,FN,FP,TN四种分类情况. 按照前面例子,我们需要从一个班级中的人中寻找所有女生,如果把这个任务当成一个分类器的话,那么女生就是我们需要的,而男生不是,所以我们称女生为"正类",而男生为"负类".

      相关(Relevant),正类 无关(NonRelevant),负类
    被检索到(Retrieved) true positives(TP 正类判定为正类,例子中就是正确的判定"这位是女生") false positives(FP 负类判定为正类,"存伪",例子中就是分明是男生却判断为女生,当下伪娘横行,这个错常有人犯)
    未被检索到(Not Retrieved) false negatives(FN 正类判定为负类,"去真",例子中就是,分明是女生,这哥们却判断为男生--梁山伯同学犯的错就是这个) true negatives(TN 负类判定为负类,也就是一个男生被判断为男生,像我这样的纯爷们一准儿就会在此处)

     通过这张表,我们可以很容易得到这几个值: TP=20 FP=30 FN=0 TN=50

    精确率(precision)的公式是P = frac{TP}{TP+FP}P=TP+FPTP,它计算的是所有"正确被检索的item(TP)"占所有"实际被检索到的(TP+FP)"的比例.

    对于本文的例子来说,实际检索到了50个人,但是其中只有20个是正确的样本。因此精确率是40%

    召回率(recall)的公式是R = frac{TP}{TP+FN}R=TP+FNTP,它计算的是所有"正确被检索的item(TP)"占所有"应该检索到的item(TP+FN)"的比例。

    对于本文的例子来说,正确被检索到的样本为20个,全部应该被检索到的样本也是20个,因此召回率是100%

    F1值就是精确值和召回率的调和均值,也就是

    2/F1 = 1/P + 1/R

     

    参考资料:

    https://blog.argcv.com/articles/1036.c

  • 相关阅读:
    一道编程面试题
    AtCoder Grand Contest 016 B
    AtCoder Regular Contest 076 D
    Codeforces Round #419 (Div. 2) B. Karen and Coffee
    2017 计蒜之道 复赛 Windows画图+百度地图导航
    Codeforces Round #418 (Div. 2) B. An express train to reveries
    棠梨煎雪
    Bits And Pieces
    Let Them Slide
    TeaTree
  • 原文地址:https://www.cnblogs.com/earendil/p/8126341.html
Copyright © 2020-2023  润新知