在我的示例中,精度和召回率如何比分类精度更好?

数据挖掘 分类 多类分类 准确性
2022-02-14 06:52:26

我试图通过一个直观的例子来理解精确度和召回率,但我的计算似乎不正确。

例如,有 8 个红球和 2 个蓝球。我很愚蠢,只是预测它们都是红色的。准确度为 0.8 ,看起来不错。但这并不反映这只是一个幸运的、愚蠢的猜测,我错误地分类了所有的蓝球。如果我没记错的话,在这种情况下,我们有 8 个真阳性(TP = 8),2 个假阳性(FP = 2),既不是真阴性也不是假阴性(TN = 0,FN = 0)。那么是不是precision = TP/(TP+FP) = 0.8 和recall = TP/(TP+FN) = 1?他们还是不好看吗?

1个回答

你的计算是正确的,但是你忘了问自己一个问题:为什么我们要把“红色”当作正类?可以为每个类别计算精度和召回率(即,将当前类别视为正数),而不是准确度。

因此,如果我们将“蓝色”视为正面,我们会得到:

  • 精度 = NaN(因为有 0 个预测为正)
  • 召回 = 0 / 2 = 0

通常在那之后会计算微观和/或宏观精度/召回:

  • 宏精度 = NaN,因为蓝色的精度是 NaN
  • 微精度 = totalTP / totalTP+totalFP = 8/10
  • 宏观召回 = ( 1 + 0 ) / 2 = 0.5
  • 微召回 = totalTP / totalTP+totalFN = 8/10

根据定义,微性能有利于大多数类,因此它仍然很高。但是宏观性能会清楚地显示出准确性无法显示的问题。