如何评估一个模型的好坏?(Precision, Recall, F1-score)

二元混淆矩阵包含四个要素:TP(True Positive), TN(True Negative), FP(False Positive), FN(False Negative)

但光是直接看这些数值,我们很难一眼看出一个分类模型的好坏,所以我们通常会透过Recall, Precision, F1-score这些指标来评估一个模型的好坏

Recall(召回率) = TP/(TP+FN)
Precision(准确率) = TP/(TP+FP)
F1-score = 2 * Precision * Recall / (Precision + Recall)

召回率是在所有正样本当中,能够预测多少正样本的比例,准确率为在所有预测为正样本中,有多少为正样本

拿一个例子来说,在小明家的门禁系统中,哪个比较重要呢?

公布答案,准确率应比较重要,我们希望判定成正样本就一定要是正确的,不要有小王的脸可以打开小明家的门的情况

而召回率低的话,也不过是常常无法判断出来小明的脸,但至少不是误判

再举一个实际在NLP领域上会遇到的例子

假设我们今天要做一个NER(命名实体识别)的模型,每个字我们都会输出一个标签,如果该字我们认为不属于命名实体的任一部分,也会有一个标签代表非标签(ex. UNK)

一个Precision高而Recall低的模型跟一个Recall高而Precision低的模型,分别代表什么意义呢?

Precision高可以看作一个比较谨慎的模型,虽然常常没办法抓出命名实体,但只要有抓出几乎都是正确的
Recall高则是一个宽松的模型,虽然有时候会抓错,但几乎该抓的都有抓到

在极端的场合,两个模型都是不好的,以NER这个例子,前者可能几乎无法预测出命名实体,那等于没有功用,后者可能预测错误太多,也无法拿来使用,这时候我们就希望有一个指标,能够调和两者

F1-score则是两者的调和平均数,算是一个比较概略的指标来看这个模型的表现

你可能感兴趣的:(自然语言处理)