前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单单知道分类正确率是不够的,你可以使用更多的性能评估指标

单单知道分类正确率是不够的,你可以使用更多的性能评估指标

作者头像
ArrayZoneYour
发布2018-02-07 17:25:12
1.3K0
发布2018-02-07 17:25:12
举报

当你为某个分类问题建立了一个模型时,一般来说你会关注该模型的所有预测结果中正确预测的占比情况。这个性能指标就是分类正确率。

在原作者的上一篇文章中,提到了如何利用交叉验证和多重交叉验证来评估模型的鲁棒性(健壮性),即模型在训练集未设计的样本上的泛化性。在上一篇文章中主要用了分类正确率和平均分类正确率来作为观测指标。

当你说你的模型足够健壮之前,需要评估它解决对应问题时是否足够出色,具有良好的泛化性。因此常规情况下仅仅使用分类正确率是没有说服力的。

照片来源:Nina Matthews Photography,保留部分权利
照片来源:Nina Matthews Photography,保留部分权利

在本文中我们主要关注预测的精确率(Precision)和召回率(Recall),你可以使用这两个性能指标来评估你的二分类模型性能。

乳腺癌复发预测的例子

乳腺癌数据集是一个标准的机器学习数据集。它记录了286位曾患乳腺癌并治愈的患者的9个相关属性以及未来5年内病情是否复发。

这是一个典型的二分类问题。在286名妇女中,201人五年内没有复发,剩下的85人乳腺癌复发。

我认为在这个分类问题当中,将会复发误报为不会复发要比把不会复发误报为会复发严重得多。因为误判为会复发的患者可以通过进一步检查发现预测的错误,而相反的则会直接出院,丧失了早期发现复发情况的机会。

分类准确率

我们以分类准确率为出发点开始探究以上问题。用正确预测的样本数除以总的预测样本数就可以得到分类的精确度,乘以100就得到了对应的百分比。

预测结果都为不复发

如果我们对所有治愈的患者说五年内不会再复发,如果实际情况与数据集中的一只,此时的预测准确率可以达到(201/286)*100即70.28%的准确率。虽然准确率比较高,但是这个模型是很糟糕的。如果仅仅用这一个模型来为医生提供决策(当然现实中是不可能的),将会有85位患者误以为自己的乳腺癌不会复发(对应负例样本的高误判率)。

预测结果都为会复发

如果我们把所有的预测都改为会复发,此时的准确度为(75/286)* 100即29.72%的准确率。显然这个模型的准确率是十分糟糕的,这会使70.28的患者认为自己的病症会复发,而实际上是并不会复发的(对应正例样本的高误判率)。

CART

CART(Classification And Regression Trees,分类与回归树的简写)是一个简单而又强大的决策树算法,在我们探讨的问题上,CART可以达到69.23的准确率。相比全部分类为不会复发还要差一点,我们应当如何更恰当地评估这时的性能呢?它是比全部预测为不会复发更好一点还是更差一点呢?

不过我们可以肯定的一点是,单单使用准确率这一标准是不足以下定论的。

混淆矩阵

清晰明确地呈现分类器预测结果的常用手段是使用混淆矩阵(有时也称为列联表)。

在二分类问题中,混淆矩阵为2行2列。在本文中,上方的列标注为观测到的真实类别标签,左侧的行标注的是模型预测的类别标签,每个单元格中的数字代表同时分类器输出结果同时满足行,列要求的样本数量。

混淆矩阵真值表
混淆矩阵真值表

在我们讨论的例子当中,一个完美的分类器的预测结果应当为201个不复发,85个会复发,对应上面单元格的填充情况应当为左上201,右下85。

错误的预测样本会被划分至另外两个单元格。误判的负例(False Negative)在分类器中被误判为不会复发,在完美的分类器中不会出现这种情况。误判的正例(False Postive)在分类器中会被误判为会复发。

这是一个很有用的表格,它将数据中的类别分布和分类器的类别预测结果根据错误的不同类别做了进一步的分解。

预测结果都为不复发时的混淆矩阵

在混淆矩阵中出现了大量(85个)误判的负例(False Negatives)。

预测结果都为不复发时的混淆矩阵
预测结果都为不复发时的混淆矩阵

预测结果都为会复发时的混淆矩阵

混淆矩阵中出现了大量(201个)误判的正例(False Positive)。

预测结果都为会复发时的混淆矩阵
预测结果都为会复发时的混淆矩阵

CART模型对应的混淆矩阵

这看起来更像一个有价值的分类器,因为它既可以正确地取测出10个正例,也可以正确地取测出188个负例。错误分类的样本分布也更为合理。

CART模型对应的混淆矩阵
CART模型对应的混淆矩阵

准确性悖论

正如我们在这个例子中看到的那样,只用准确性选择模型可能会引起误导。有时可能需要选择精确度较低的模型,如果它对问题有更强的预测能力。

举例来说,如果我们处理的问题中类别的分布时不平衡的,这是如果模型直接将预测结果判定为占比较多的一类就可以获得较高的分类准确性,但是这个模型实际上并没有从问题的域中提取到有价值的规则,也就不能起到实际的作用。我们上面所举的乳腺癌复发预测就属于这类例子。

这种现象就被称作精确性悖论,对于这类问题,我们需要一些额外的手段来评估分类器。

精确率

精确率可以通过正确预测的正例样本数除以总的正例样本数得到,也被称为阳性预测值(Positive Predictive Value,PPV)

精确率可以作为分类器准确率的度量之一,低的精确率也暗示着存在大量误判的正例。

  • 预测结果都为不复发时,精确度为0 /(0 + 0)= 0,精确率0%。
  • 预测结果都为会复发时,精确度为85 /(85 + 201)= 0.30,精确率30%。
  • CART模型的精确度为10 /(10 + 13)= 0.43,精确率43%。

从精确度来看,CART是一个更好的模型,也可以看到虽然预测全部为复发时的准确率较低,但是在精确率上它更占优势。而CART和全部预测为会复发的模型之间准确度的差异可以从两者误判的正例数量占比来解释。

召回率

召回率可以用正确预测的正例数除以正确预测的正例数加上错误预测的负例数,即用正确预测的正例数除以分类器输出的正例数。召回率也被称作灵敏度或PPV(Positive Predictive Value)

召回率可以被认为是分类器完备性的体现,低的召回率暗示着存在大量误判的负例。

  • 预测结果都为不复发时,召回率为 0 /(0 + 85)= 0。
  • 预测结果都为会复发时,召回率为 85 /(85 + 0)* 100% = 100%。
  • CART的召回率为 10 /(10 + 75)* 100% = 12%。

正如大家料想的一样,预测结果都为会复发时,在召回率上的表现是完美的,因为它成功预测到了所有的复发样本。由于CART中存在大量误判的负例,它的召回率要低于全部预测为复发时的情况。

F1得分

F1分数的计算公式为 2((precisionrecall)/(precision+recall)),也被称作F分数或者F度量。换言之,F1分数是综合考量精确率和召回率的结果。

  • 预测结果都为不复发时,F1分数是2 ((0 0)/ 0 + 0)= 0。
  • 预测结果都为会复发时,F1分数是2 ((0.3 1)/0.3+1)= 0.46。
  • CART模型的F1分数是2 ((0.43 12)/0.43+12)= 0.19。

如果我们综合精确率和召回率来选择模型的话,F1分数表明了我们设计的模型一定要超越预测结果均为会复发时的F1分数,可以看出CART模型的预测能力并没有达到这一要求。

总结

在这篇文章中,你可以了解到准确性悖论以及在类别不平衡的问题中单靠分类准确性无法确保选择的模型性能是良好的。

通过实例,我们可以知道混淆矩阵将预测结果根据错误的不同类别做了进一步的分解,以此来描述未预见的数据集预测中的错误,文中还提到了衡量模型的精确率(准确性)和召回率(完备性),以及两者折衷的结果——F1分数。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 乳腺癌复发预测的例子
  • 分类准确率
    • 预测结果都为不复发
      • 预测结果都为会复发
        • CART
        • 混淆矩阵
          • 预测结果都为不复发时的混淆矩阵
            • 预测结果都为会复发时的混淆矩阵
              • CART模型对应的混淆矩阵
              • 准确性悖论
              • 精确率
              • 召回率
              • F1得分
              • 总结
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档