如何计算召回率和精确率如果没有正/负含义?

当类别中没有正负含义,而只是代表中性事物时,该如何计算这些指标呢?

例如,假设我们有一个分类问题,其中有两个类别代表两个人(约翰、亚历克斯),你想将新的实例分类到其中一个类别中。目标是判断新的人更像是约翰,还是更像是亚历克斯。那么你该如何计算召回率和精确率呢?


回答:

在这种情况下通常没有所谓的精确率,你可以(而且人们通常会)报告两种精确率,在你的情况下是:

  • 识别约翰的精确率
  • 识别亚历克斯的精确率

换句话说,你可以将每个类别单独视为正类,并报告多个精确率。有些指标不存在这个问题(如准确率),因为它们是对称的。对于不对称的指标(如精确率或F1分数),你需要做以下三件事之一:

  • 决定哪个类别是正类
  • 报告多个值,每个值以不同的类别定义为“正类”
  • 聚合上述结果——例如,通过报告类别上的平均精确率、中位数精确率等

最后要说的是——没有一种“普遍的方法”来做这件事,因为每种方法回答的是不同的问题。一旦你能严格定义你的模型试图回答的问题,你就可以选择最佳的指标。

例如,如果你的问题是“我想最大化正确分类从未见过的对象x的概率,x是从与我的训练集相同的数据源中抽取的”,那么答案是准确率,而不是精确率或召回率。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注