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

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

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


回答:

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

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

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

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

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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