为什么准确性不是评估分类模型的最佳方法?


107

这是一个一般性问题,在这里多次被间接问到,但缺少一个权威性的答案。对此有详细的答案将是很棒的参考。

准确度(正确分类在所有分类中所占的比例)是非常简单且非常“直观”的度量,但是对于不平衡的数据而言可能不是一个很好的度量。为什么我们的直觉会误导我们,并且此措施还有其他问题?

Answers:


112

其他大多数答案都集中在不平衡类的示例上。是的,这很重要。但是,我认为即使使用平衡的类,准确性也存在问题。

弗兰克·哈雷尔(Frank Harrell)在他的博客上写过:分类与预测以及分类准确性和其他不连续的不正确准确性评分规则所造成的损害

本质上,他的观点是,当您为新样本的每个类别输出概率时,练习的统计组成部分结束。映射这些预测概率以一个0-1的分类,通过选择超出要划分一个新的观察为1比0的阈值不是的一部分统计任何更。它是决策组件的一部分。在这里,您需要模型的概率输出-还需要考虑以下因素:(p^,1p^)

  • 决定将新观测值视为1类vs. 0的后果是什么?然后,我是否将便宜的营销邮件发送给所有人?还是我会采用副作用大的浸润性癌症治疗方法?
  • 将“ true” 0视为1的结果如何,反之亦然?我会打勾顾客吗?使某人不必要的治疗?
  • 我的“班级”真的离散吗?还是实际上存在一个连续体(例如血压),而临床阈值实际上只是认知捷径?如果是这样,我现在正在“分类”的情况超出阈值多远
  • 还是只有低但为正的概率成为1类实际上意味着“获取更多数据”,“进行另一项测试”?

根据决定的结果,您将使用不同的阈值来做出决定。如果采取的是侵入性手术,则与推荐使用两种阿司匹林的情况相比,将患者分类为患有某种疾病的可能性更高。或者,你甚至可能有3个不同的决定,尽管只有2类(患病与健康):“回家,不用担心”与“运行另一个测试,因为一个我们尚无定论”与“立即运行” 。

评估预测概率的正确方法是将它们与阈值进行比较,基于阈值将它们映射到,然后评估转换后的分类。相反,应该使用适当的。这些是将预测的概率和相应的观察结果映射到损失值的损失函数,期望值由真实概率最小化。想法是,我们将对多个(最佳:许多)观察到的结果以及相应的预测班级成员资格所评估的评分规则的平均值作为对评分规则预期的估计。(p^,1p^)0 1 0 1 p 1 - p (0,1)(0,1)(p,1p)

请注意,此处的“正确”具有精确定义的含义-有不正确的评分规则正确的评分规则,最后是严格正确的评分规则这样的评分规则是预测密度和结果的损失函数。适当的评分规则是在预测密度为真实密度的情况下将期望最小化的评分规则。严格正确的评分规则在预测密度为真实密度的情况下将期望最小化的评分规则。

正如弗兰克·哈雷尔(Frank Harrell)指出的那样,准确性是不正确的评分规则。(更确切地说,准确性甚至根本不是一个评分规则:请参见“准确性是否是二进制分类设置中不正确的评分规则?”的回答)。例如,如果我们根本没有预测变量而只是一个倒数具有概率的不公平硬币。如果我们将所有分类都归为第一类,并且完全忽略任何结果可能属于第二类的40%概率,则准确性将达到最高。(在这里,我们发现即使对于平衡的班级,准确性也是有问题的。)正确的将首选预测,而不是(0.6,0.4)0.6 0.4 1 0 (0.6,0.4)(1,0)期望中的一个。特别是,阈值的准确性是不连续的:将阈值移动一点点可能会使一个(或多个)预测更改类别,并使整个准确性离散量。这毫无意义。

可以在上面链接的Frank的两个博客文章以及Frank Harrell的Regression Modeling Strategies的第10章中找到更多信息。

(这是我的较早回答无耻地轻描淡写。)


编辑。对“ 示例”的回答使用准确性作为结果度量会导致错误的结论)给出了一个有希望的说明性示例,其中即使对于平衡的类,最大化准确性也可能导致错误的决策。


6
据我了解,@ Tim Frank的观点(他在我们的网站和其他地方的许多答案中进行了讨论)是,如果分类算法不返回概率,那么它就是垃圾,不应该使用。老实说,大多数常用算法的确会返回概率。
变形虫

6
我想说的是一种算法,该算法采用过去的观察结果并且仅输出分类,而没有考虑上述要点(例如,错误决策的成本),会使统计和决策方面变得模糊。这就像有人向您推荐一种特定类型的汽车,而无需先询问您是要运送一支小型棒球队,一堆建筑材料还是只运输您自己。所以我也想说这样的算法将是垃圾。
斯蒂芬Kolassa

8
我本来打算写一个答案,但后来没有必要。太棒了 我与我的学生讨论这是统计模型与决策之间的“关注点分离”。这种概念在工程文化中根深蒂固。
马修·德鲁里

8
@chainD:如果您的分类器(请记住,它是准确性最高的分类器)说“此样本中的每个人都是健康的”,那么哪个医生或分析家会相信这个故事还有更多呢?我同意,最后,这是分析师的号召,但是“每个人都健康”对分析师的帮助远不如引起人们关注诸如95%/ 5%预测之类的剩余不确定性的东西。
Stephan Kolassa,2017年

11
@StephanKolassa的答案和评论都很棒。有人评论暗示,根据您所隶属的文化的不同,如何看待它会有所不同。事实并非如此;只是有些领域不愿去理解文学而另一些领域却不去理解。以天气预报为例,至少从1951
Frank Harrell

78

当我们使用准确性时,我们将相等的成本分配给误报和误报。当该数据集不平衡时-假设它在一类中有99%的实例,而另一类中只有1%的实例-有降低成本的好方法。预测每个实例都属于多数类别,准确度达到99%并尽早回家。

当我们分配给每个错误的实际成本不相等时,问题就开始了。如果我们处理的是罕见但致命的疾病,则无法诊断出患病者的疾病的成本要比派遣健康人进行更多检查的成本高得多。

通常,没有一般的最佳措施。最佳方法来自您的需求。从某种意义上说,这不是机器学习问题,而是业务问题。通常两个人会使用相同的数据集,但由于目标不同而选择不同的指标。

准确性是一个很好的指标。实际上,大多数指标都很出色,我喜欢评估许多指标。但是,有时需要在使用模型A或模型B之间做出选择。在那里,您应该使用最适合您需求的单个指标。

要获得额外的信用,请在分析之前选择此指标,这样您在做决定时就不会分心。


3
很好的答案-我提出了一些修改,只是为了使机器学习的初学者(针对这个问题的初学者)更清楚地指出这一点。
nekomatic

1
我不同意这不是机器学习问题。但是解决该问题将涉及对元问题进行机器学习,并使机器除了基本分类信息之外还必须能够访问某种数据。
Shufflepants

3
我不认为它仅是数据的函数,因为不同的目标可能导致不同的成本/模型/性能/指标。我同意,总的来说,成本问题可以用数学的方式解决。但是,诸如治疗患者的费用之类的问题依赖于完全不同的信息。元数据所需的此信息通常不适合机器学习方法,因此大部分时间都使用不同的方法来处理。
DaL

2
所谓“误诊一个人与疾病”,你的意思是“误诊的人谁拥有疾病(如没有疾病)”,对不对?因为该短语可以用任何一种方式解释。
Tanner Swett

你是对的坦纳。我更改了测试以使其更加清晰。
DaL

20

准确性问题

标准精度定义为正确分类与完成分类的数量之比。

accuracy:=correct classificationsnumber of classifications

因此,这是对所有类的总体度量,并且我们很快就会看到,除了实际有用的测试之外,告诉oracle不是一个好方法。oracle是一个分类函数,它为每个样本返回随机猜测。同样,我们希望能够对分类函数的分类性能进行评分。如果我们每个类中有相同数量的样本,但是如果我们的样本集不平衡,则\ textit {精度}可能是有用的度量,准确性根本没有用。更重要的是,测试可能具有较高的准确性,但实际上比具有较低准确性的测试的性能差。

ABC0.9

classify(sample):={Aif 

classify

classify(sample):=guess{Awith p =0.96Bwith p =0.02Cwith p =0.02

0.960.9+0.020.052=0.866Aclassify

每班精度

accuracy:=correct/(correct+incorrect)A1.00A0.331.000.00>0.5AABA

敏感性和特异性

在医学测试中,灵敏度定义为正确识别为患有疾病的人数与实际患有疾病的人数之间的比率。特异性定义为正确识别为健康的人与实际健康的人之间的比率。实际患病的人数是真实阳性测试结果的数量加上虚假阴性测试结果的数量。实际健康的人的数量是真实阴性测试结果的数量加上虚假阳性测试结果的数量。

二进制分类

PNTnnFnn

sensitivity:=TPTP+FNspecificity:=TNTN+FP

TPFNTNFPαβαTααTα+FβαTβαTβ+FααββTββTβ+FαβTαβTα+Fβ

sensitivityα:=TαTα+Fβspecificityα:=TβTβ+Fαsensitivityβ:=TβTβ+Fαspecificityβ:=TαTα+Fβ

sensitivityα=specificityβspecificityα=sensitivityβ。这意味着如果我们只有两个类别,则不需要每个类别的敏感性和特异性。

N-Ary分类

如果只有两个类别,则每个类别的灵敏度和特异性都没有用,但是我们可以将其扩展到多个类别。敏感性和特异性定义为:

sensitivity:=true positivestrue positives+false negativesspecificity:=true negativestrue negatives+false-positives

Tni(Fn,i)i(Fi,n)ni(Ti)T(n)nni(k(Fi,k))代表所有错误的分类。由此,我们必须减去的情况下输入类是这意味着我们必须减去为假阴性这是,但我们也必须减为误报因为它们是假阳性而不是假阴性,所以我们还必须减去最终得到 。作为总结,我们有:nni(Fn,i)ni(Fi,n)i(Ti)T(n)+i(k(Fn,i))i(Fn,i)i(Fi,n)

true positives:=Tntrue negatives:=i(Ti)T(n)+i(k(Fn,i))i(Fn,i)i(Fi,n)false positives:=i(Fi,n)false negatives:=i(Fn,i)

sensitivity(n):=TnTn+i(Fn,i)specificity(n):=i(Ti)Tn+i(k(Fi,k))i(Fn,i)i(Fi,n)i(Ti)Tn+i(k(Fi,k))i(Fn,i)

引入信心

confidenceTn+i(Fi,n)nTn

confidence(n):=TnTn+i(Fi,n)

confidencenn

i(k(Fi,k))i(Fi,n)+i(Ti)Tni(Fn,i)

confidence(n)=i(k(Fi,k))i(Fi,n)+i(Ti)Tni(Fn,i)i(k(Fi,k))i(Fi,n)+i(Ti)Tn


您能否提供使用混淆矩阵计算平均准确度的任何示例。
Aadnan Farooq,

您可以在此处找到带有示例的更详细的描述:mroman.ch/guides/sensspec.html
mroman

再次通读它,confidence_false的定义中有错误。我很惊讶没有人发现这一点。我会在接下来的几天内解决此问题。
mroman

8

数据集中的类不平衡

简而言之:假设数据集中有一个类别(例如苹果)的99%和另一个类别的1%(例如香蕉)。我的超级duper算法对该数据集的准确性达到了惊人的99%,请检查一下:

return "it's an apple"

他将在99%的时间内正确,因此获得了99%的准确性。我可以卖给我我的算法吗?

解决方案:不要使用绝对度量(准确性),而是要使用相对于每个类的度量(那里有很多东西,例如ROC AUC)


不,AUC也不适用于不平衡的数据集。
SiXUlm

@SiXUlm,您可以详细说明吗?
Mayou36

P(D)/P(DC)P(T|D)P(F|DC)

可以在以下网址找到更清晰的插图:quora.com/…。看看马云的答案。
SiXUlm

我仍然不明白你的意思。这不是我(包括Quora)在解决方案中所说的并完全支持我的回答吗?关键是先验不应该影响衡量网络性能的指标。什么合适的,完全取决于你的问题,例如,最好是优化每一个可能的切割。因此,让我知道:1),因为它是不变的先验,但敏感的表现,为什么不合适?b)您认为合适什么或需要哪些特征?
Mayou36

2

DaL的答案就是这样。我将通过一个有关出售鸡蛋的非常简单的示例来说明这一点。

21

21

如果您的分类器没有记错,那么您将获得最大的收益。如果它不是完美的,则:

  • 1
  • 1

然后,分类器的准确度就是您离最大收益的距离。这是完美的措施。

a

  • a
  • 2a

a=0.00120.001

例如,如果分类器要在数据库中查找相关文档,则可以将读取无关文档的“浪费”时间与查找相关文档进行比较。


1

分类准确性是正确预测的数量除以预测的总数。

准确性可能会产生误导。例如,在存在较大类别不平衡的问题中,模型可以针对所有预测来预测多数类别的值,并获得较高的分类精度。因此,需要进一步的性能指标,例如F1得分和Brier得分。


-3

R2

R2

正如其他人指出的那样,准确性的另一个问题是对失败代价的内在漠视-即所有错误分类均相等的假设。实际上,它们并非如此,获得错误分类的成本在很大程度上取决于主题,并且您可能更愿意使特定类型的错误最小化,而不是使准确性最大化。


2
哼。(1)我会假设,评估的准确性或任何其他度量出的样本会被理解,所以我实在不明白怎么准确性有更多的一个具体的过度拟合问题。(2)如果将针对总体A训练的模型应用于不同的总体B,则您将苹果与橘子进行了比较,而我再次没有真正看到这是准确性方面的一个具体问题
Stephan Kolassa,2017年

(1)然而,准确性仍然是一个问题,问题在于将准确性用作黄金标准。(2)建立分类器的目的是在橘子上使用它,而不仅仅是苹果。它应该足够笼统地捕获数据中的基本信号(以使它们存在),而不是对您的训练数据持怀疑态度。
詹姆斯
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.