【问题标题】:ValueError: Found input variables with inconsistent numbers of samples: [6, 1]ValueError:发现样本数量不一致的输入变量:[6, 1]
【发布时间】:2020-07-05 21:02:56
【问题描述】:

我正在突破图像分类按钮。 我想计算每张图像的精度和召回率。 目前对于每个图像,我有两个 .txt:一个表示 GT,一个表示检测。 示例:

GT: [59, 59, 59]
DETECTION: [30, 30, 1]

如果 GT 的长度小于或大于检测的长度,我如何计算指标?

GT: [64, 64, 64, 64, 64]
DETECTION: [34]

GT: [59, 59, 59]
PRED: [30, 30, 1, 59]

我尝试使用此函数:precision = precision_score(GT, DETECTION, average = 'macro') 但当len(GT)len(DETECTION) 不同时,它无法计算指标...

ValueError: Found input variables with inconsistent numbers of samples: [6, 1]

有人知道如何帮助我吗?在此先感谢

【问题讨论】:

  • 你应该有一个预测的和一个实际的图像标签(基本事实),不是吗?你允许多标签吗?在这种情况下,每个图像都应该有一个 1-out-of-K 数组。
  • 这是一个多类别的品尝。对于每个实际图像,我都有一个或多个数字来指示检测到的边界框的类别。然而,在检测中,我的模型会检测到更少或更多的边界框。因此,如果我尝试计算指标,sklearn 会返回一个 valueError。这是因为它们没有相同数量的元素。 PS:每一个bounding box类的名字都和一个json文件中的名字相关联。
  • 我的问题是:当len (gt)> len (pred) 时,我可以计算分类任务的指标吗? example gt = ["apple", "cat", "rabbit"], pred = ["apple", "rabbit"]

标签: python scikit-learn metrics multiclass-classification precision-recall


【解决方案1】:

不,您必须在两种情况下都使用具有相同形状的数组。例如,如果你有 K 个类,那么两个向量的形状都应该是 (1, K)。然后值是 0 或 1,这取决于类是否存在。 You have to encode the categories.

【讨论】:

  • 我明白了!谢谢@gtancev
猜你喜欢
  • 2021-08-18
  • 2022-01-16
  • 2021-07-29
  • 2020-11-15
  • 2021-10-09
  • 2017-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多