Recall在2级分类任务中有意义吗?

时间:2016-11-08 04:55:31

标签: machine-learning classification precision-recall

我知道Recall = TP /(TP + FN)

假设我考虑了分类器的不同上下文的重新调用值。在一个上下文中,我将classA作为我的积极类,将classB作为我的负面类。在另一个上下文中,我将classA作为我的负面类,将classB作为我的正面类。

让R1和R2值成为这些上下文中的召回值

R1=TP1/(TP1+FN1)
R2=TP2/(TP2+FN2)
But TP2=FN1 and FN2=TP1
So R2=FN1/(TP1+FN1)
So R1+R2=1

这个论点有什么不对?[我觉得有些事情是错的,因为我看到使用召回评估分类器]。

同等地,如果我被要求计算召回分类器,是R1还是R2?你如何决定

1 个答案:

答案 0 :(得分:0)

要获得有意义的结果,您需要评估 精度和召回。单独评估很有可能很难评估功能。

召回能够说明某个项目是否在某个类中,如果它实际上是。如果你只看回忆(不看准确性),那么得到一个完美的分数是微不足道的:

bool ismember(item, class) { 
    return true;
}

保证每时间100%完美召回。问题是它的精确度显然 stinks (实际上,它的精度为0 - 它不能拒绝不属于某个组成员的项目,因为它永远不会拒绝任何

相反,如果我们从召回中孤立地看待精确度,那么每次都能获得完美的结果同样微不足道:

bool ismember(item, class) { 
    return false;
}

精确是指拒绝非会员并断定他们不是班级成员的能力。由于这表示没有任何东西是该课​​程的成员,其精确分数始终是100%完美。当然,它有相反的问题:这次召回是0。

总结:我们需要查看两者召回和精确度,以获得有意义的结果。