模型评估(一)—— 准确率(Accuracy),精确率(Precision),召回率(Recall),F1-Score的总结

True Positive(TP):实际为正,预测也为正
True Negative(TN):实际为负,预测也为负
False Positive(FP):实际为负,预测为正
False Negative(FN):实际为正,预测为负

在二分类问题中可以用以下的Confusion Matrix来表示:
Confusion Matrix for Binary Classification
准确率(Accuracy),是预测正确的样本占全部样本的比例。

精确率(Precision),也叫查准率,是True Positive 占预测为正例的比例:预测为正的样本中,有多少是真正的正样本。

Precision= T P T P + F P \frac{TP}{TP+FP}

召回率(Recall),也叫查全率,是True Positive 占样本中所有正例的比例:正样本中,有多少被预测到了。

Recall= T P T P + F N \frac{TP}{TP+FN}

在分类任务中,准确率是常用的衡量模型的方法。但在样本极度不平衡的情况下,准确率并不是一个理想的衡量标准。假设给100个人做病毒的检测,实际上只有一个人感染了病毒,但因为样本的不平衡,模型倾向于把所有的样本预测为没有感染病毒,准确率高达99%,但因为高准确率就说这是一个好模型是不科学的,在这个例子里关注那些感染了病毒的1%才是最重要的。

所以这里需要引入召回率的概念:感染了病毒的人群中,有多少人被准确预测了?我们希望召回率高一点,因为想把病毒携带者尽可能找出来。但并不是越高越好:举个极端的例子,根据宁可错杀一千不可放过一个的原则,我们把100人都预测为正例(感染了病毒),我们能够把所有感染了病毒的人找出来,召回率是1,但误伤率也极高,因为有99人实际上没有感染病毒,精确率(在被预测感染了病毒的人中,有多少人真的携带病毒?)只有1/100=0.01。反过来,如果我们只在非常确定的情况下才判断一个样本感染了病毒,可以提高精确率,但同时也放弃了部分感染了病毒的病人。所以高精确率和高召回率往往不可兼得,存在trade-off。

当我们想要在两个模型中,在不同的两组精确度和召回率之间做选择时,可以考虑结合了两者的F-1 Score

F-1 Score= 2 p r e c i s i o n r e c a l l p r e c i s i o n + r e c a l l \frac{2*precision*recall}{precision+recall}

这里用到的是调和平均数(harmonic mean)。我们希望选择F-1 Score较高的那个模型。

发布了1 篇原创文章 · 获赞 2 · 访问量 37

猜你喜欢

转载自blog.csdn.net/weixin_46490424/article/details/104714915