如果没有 positive/negative 含义,如何计算召回率和精度?
How to compute recall and precision if there is not a positive/negative meaning?
当 类 中没有 positive.negative 含义但它们仅代表中性内容时,您如何计算这些指标?
例如,假设我们有一个分类问题,您有两个 类 代表一个人(约翰、亚历克斯),您想要将新实例分类到其中一个。 objective 用于查找新人是像 John 还是像 Alex。那么你如何计算召回率和准确率?
通常在这种情况下,没有精度这回事,你可以(人们通常会做的)是报告 两个 精度,在你的情况下:
- 识别约翰的准确率
- 识别Alex的准确率
换句话说,您只需将每个 class 分别视为正数并报告多个精度。有些指标没有这个问题(比如准确性),因为它们是对称的。对于不对称的(如精度或 F1),您必须做以下三件事之一:
- 决定哪个class是肯定的
- 报告多个值,每个值不同 class 定义为 "positive"
- 汇总上述结果 - 例如通过报告 class 的平均精度、中位数精度等
最后一点 - 没有 "general way of doing that" 这样的东西,因为每种方法都会给出不同问题的答案。一旦您可以严格 定义您的模型试图回答的问题,您就可以选择最佳指标。
例如,如果您的问题是 "I want to maximize probability of correct classification of never seen before object x, sampled from the same data source as my training set",则答案是由 准确度 给出的,而不是精确度或召回率。
当 类 中没有 positive.negative 含义但它们仅代表中性内容时,您如何计算这些指标?
例如,假设我们有一个分类问题,您有两个 类 代表一个人(约翰、亚历克斯),您想要将新实例分类到其中一个。 objective 用于查找新人是像 John 还是像 Alex。那么你如何计算召回率和准确率?
通常在这种情况下,没有精度这回事,你可以(人们通常会做的)是报告 两个 精度,在你的情况下:
- 识别约翰的准确率
- 识别Alex的准确率
换句话说,您只需将每个 class 分别视为正数并报告多个精度。有些指标没有这个问题(比如准确性),因为它们是对称的。对于不对称的(如精度或 F1),您必须做以下三件事之一:
- 决定哪个class是肯定的
- 报告多个值,每个值不同 class 定义为 "positive"
- 汇总上述结果 - 例如通过报告 class 的平均精度、中位数精度等
最后一点 - 没有 "general way of doing that" 这样的东西,因为每种方法都会给出不同问题的答案。一旦您可以严格 定义您的模型试图回答的问题,您就可以选择最佳指标。
例如,如果您的问题是 "I want to maximize probability of correct classification of never seen before object x, sampled from the same data source as my training set",则答案是由 准确度 给出的,而不是精确度或召回率。