召回率和分类精度


40

尽管每次都是在信息检索的上下文中,但我还是阅读了一些有关回忆和精确度的定义。我想知道是否有人可以在分类环境中对此进行更多解释,并举例说明一些例子。比如说我有一个二进制分类器,它给我60%的精度和95%的召回率,这是一个很好的分类器吗?

也许可以进一步帮助我实现目标,那么根据您的最佳分类器是什么?(数据集不平衡。多数类的数量是少数类的示例的两倍)

我个人会说5,因为接收器操作员曲线下方的区域。

(如您在这里看到的,模型8的精度较低,召回率很高,但是AUC_ROC最低,这使它成为好模型还是坏模型?)

在此处输入图片说明


编辑:

我有一个包含更多信息的Excel文件:https : //www.dropbox.com/s/6hq7ew5qpztwbo8/comparissoninbalance.xlsx

在此文档中,可以找到接收方算子曲线下的区域以及精确召回曲线下的区域。连同情节。


6
为什么要投反对票?这似乎是一个有趣的问题(肯定有几个人认为可以回答)。
晚会

计算性能度量涉及多少测试用例?另外,如果您在同一数据集上比较多个分类器,则可以使用成对设计(关于CV讨论分类器比较的问题,有几个问题和答案)。
cbeleites支持Monica

我有799个样本(如果那是测试用例的意思)。每次我将数据分成10个子集。1个子集用于测试分类器,其余子集用于训练分类器(比较的分类器在相同数据上进行训练)。
Olivier_s_j 2013年

分类器是输出二进制值,还是输出实数值,然后使用阈值将其设为二进制?
galath 2013年

他们输出二进制输出。
Olivier_s_j 2013年

Answers:


40

分类器是否“好”,实际上取决于

  1. 还有什么可以解决您的特定问题。显然,您希望分类器优于随机或幼稚的猜测(例如,将所有分类都归为最常见的类别),但某些事物比其他事物更容易分类。
  2. 不同错误(误报警与误报)的成本和基本费率。区分两者并弄清后果非常重要,因为可能有一个非常高精度的分类器(某些测试样本上的分类正确),而在实践中完全没有用(例如您正在尝试检测一种或多种罕见疾病)不常见的调皮行为,并计划在发现后采取行动;大规模测试会花费一些钱,而补救措施/处理通常也涉及重大风险/成本,因此从成本/收益的角度考虑,大多数命中将是假阳性最好什么也不做)。

一方面要了解召回/精确度与敏感性/特异性之间的联系,回到混淆矩阵是很有用的:

                      Condition: A             Not A

  Test says “A”       True positive (TP)   |   False positive (FP)
                      ----------------------------------
  Test says “Not A”   False negative (FN)  |    True negative (TN)

召回率为TP /(TP + FN),而精度为TP /(TP + FP)。这反映了问题的本质:在信息检索中,您要尽可能多地标识相关文档(即回想),而不必通过垃圾分类(即精度)。

使用同一表,传统的分类指标是(1)定义为TP /(TP + FN)的灵敏度和(2)定义为TN /(FP + TN)的特异性。因此,召回率和灵敏度只是同义词,但是精确度和特异性的定义有所不同(就像召回率和灵敏度一样,特异性是针对列总数定义的,而精度是指行总数)。精确度有时也称为“阳性预测值”,或很少称为“假阳性率”(但请参见我对“ 真阳性”,“假阳性”,“假阴性”和“真阴性”之间关系的理解)率)。

有趣的是,信息检索指标不涉及“真正的否定”计数。这是有道理的:在信息检索中,您并不关心正确地对否定实例本身进行分类,只是不想让过多的实例污染您的结果(另请参见为什么不记得真实的否定值?)。

由于存在这种差异,如果没有其他信息(即真正的阴性病例数或阳性和阴性病例的总体比例),就不可能从专一性转向精确性或其他方法。但是,对于相同的语料库/测试集,更高的特异性始终意味着更好的精度,因此它们密切相关。

在信息检索环境中,目标通常是从大量文档中识别少量匹配项。由于这种不对称性,实际上在保持灵敏度/调用率恒定的同时,要获得好的精度比好的特异性要困难得多。由于大多数文档都是无关紧要的,因此误报的情况要比真实肯定的情况多,并且即使分类器在平衡的测试集上具有令人印象深刻的准确性,误报也可能淹没正确的结果(事实上,这是我所遇到的情况)我在上面的要点2中提到)。因此,您确实需要优化精度,而不仅仅是确保像样的特异性,因为即使是令人印象深刻的比率(如99%或更高),有时也不足以避免发生大量错误警报。

通常在敏感性和特异性(或召回率和精确度)之间进行权衡。凭直觉,如果您放宽网络,则会检测到更多相关的文档/阳性案例(灵敏度/召回率更高),但也会收到更多的误报(更低的特异性和更低的精度)。如果您将所有内容归类为肯定类别,则您具有100%的回忆/敏感性,较差的准确性和几乎没有用的分类器(“主要是因为如果您没有其他任何信息,则完全有理由假设它不会在沙漠中下雨,并采取相应的行动,因此也许毕竟输出不是无用的;当然,您不需要为此使用复杂的模型)。

考虑到所有这些,60%的精度和95%的召回率听起来并不算太差,但是,这实际上还取决于域以及您打算如何使用此分类器。


有关最新评论/编辑的一些其他信息:

同样,您可以预期的效果取决于具体情况(在这种情况下,这可能是训练集中出现的确切情绪,图片/视频的质量,亮度,遮挡,头部运动,动作或自发视频,取决于个人或与个人无关的模型等),但是即使最佳模型在某些数据集上可以做得更好,F1超过0.7的声音对于此类应用也听起来不错[参见Valstar,MF,Mehu,M.,Jiang, B.,Pantic,M.和Scherer,K.(2012)。第一个面部表情识别挑战的荟萃分析。IEEE系统,人与控制论学报,B部分:控制论,第 42卷第4期,第966-979页。]

这种模型在实践中是否有用是完全不同的问题,并且显然取决于应用程序。请注意,面部“表情”本身就是一个复杂的话题,要从典型的训练集(摆姿势)到任何现实生活环境都不容易。在这个论坛上,这是相当不合时宜的话题,但是它将对您可能考虑的任何实际应用造成严重后果。

最后,模型之间的正面对比是另一个问题。我对您提供的数字的看法是,模型之间没有任何显着差异(如果您参考我上面引用的论文,该领域中知名模型的F1分数范围要大得多)。在实践中,技术方面(标准库的简单性/可用性,不同技术的速度等)将可能决定实施哪种模型,除非成本/收益和总体费用使您强烈赞成精度或召回率。


我的分类器将面孔分为正面或负面情绪。我运行了几种具有10倍交叉验证的分类算法,有时我什至获得100%的回忆率,尽管所有分类器的精度几乎相同(约65%)。我使用的数据集不平衡(多数类的样本量是少数类的两倍)。因此,我认为这可能意味着我的模型没有学习模式。
Olivier_s_j 2013年

1
@Gala:“错误警报”和“错误否定”之间有什么区别?您的意思是“假警报”和“假阳性”吗?
Matt O'Brien 2015年

@ MattO'Brien错误警报是误报(即系统说“当心!”或“找到了东西!”,但没有任何内容,也无需采取任何措施,因此是“错误警报”)。也许术语有点令人困惑,我将在稍后回顾答案。
嘎拉

@Ojtwist如果肯定的先验概率为67%,则可以通过将所有内容预测为肯定来获得100%的回忆率和〜67%的准确度。
2016年

21

在二元分类的情况下,示例可以是肯定的也可以是否定的。

  • 此次召回涉及一个问题:“给出一个正面的例子,分类器会检测到它吗?”
  • 精度解决了一个问题:“鉴于分类器给出的肯定预测,它正确的可能性有多大?”

因此,这取决于重点是正面的例子还是正面的预测。

可以说“至少90%的召回率是,分类器中精度最高的是4”。但是,如果重要的是预测的质量,则在精度至少为70%的分类器中,获得最高召回率的分类器为6。


6

从用于计算ROC区域(一致性概率; c-index)的连续预测到不连续的不正确评分规则(强制选择分类精度)会导致各种异常,并会误导分析人员选择错误的预测因子和/或型号错误。最好在适当的评分规则(例如,对数似然/偏离/对数概率评分规则; Brier评分(二次概率准确度评分))的基础上做出决策。这种方法的众多优势之一就是可以识别观测值,这些观测值由于中程概率引起的不确定性而对您的健康有害。


这些评分规则仅在模型给出概率输出时才适用吗?
Olivier_s_j 2013年

3
您提到了ROC AUC,它需要概率输出(或类似的单调函数)。最好的预测方法具有潜在的可能性。
Frank Harrell 2013年

DxyY

使用ROC和非“强制选择”分类准确性度量值的问题在于,它们在应用程序的上下文中实际上没有任何意义,在这种情况下,必须根据业务案例实际选择一个阈值。例如,在用于投资银行业务的金融犯罪检测产品中,一家企业每年可能只有人力资源来调查100个分类,因此产生了一个固定的阈值,应该对其进行优化。Gini,ROC区域等不会告诉您模型在此阈值下的性能如何。...
samthebest 2014年

2
对调查数量设置预算限制是非常合理的。这不需要任何阈值,不需要任何新的优化,不需要分类,也不需要ROC分析。一个人仅按预测风险的降序对观察结果进行排序,然后选择要调查的前100个观察结果。这与营销中使用的提升曲线有关。
Frank Harrell 2014年

5

无论是精度还是召回告诉完整的故事,这是很难用,比如预测,90%的召回率和60%的准确率比较有,比如说预测,85%的精确度和65%的召回-除非,当然,你有与混淆矩阵中 4个单元(tp / fp / tn / fn)中的每个单元相关的成本/收益。

获取描述分类器性能的单个数字(熟练程度,即不确定性系数)的一种有趣方法是使用信息论

proficiency = I(predicted,actual) / H(actual)

即,它告诉您分类器恢复了实际数据中存在的信息部分。如果precision或recall为0,则为0;如果(且仅)precision和recall为100%,则为100%。因为它类似于F1分数,但是熟练程度具有明确的信息理论意义,而F1只是两个具有意义的数字的调和平均值。

您可以在此处找到用于计算熟练度指标的论文,演示文稿和代码(Python):https//github.com/Magnetic/proficiency-metric


有趣!您能给我们一个如何计算熟练度的例子吗?因为这个公式对我来说很奇怪。
寂寞的


评论不作进一步讨论;此对话已转移至聊天
Scortchi-恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.