准确率、精确率、召回率和F-score

一、TP、FP、FN和TN

举例来说,用血压值来检测一个人是否有高血压,测出的血压值是连续的实数(从0~200都有可能),以收缩压140/舒张压90为阈值,阈值以上便诊断为有高血压,阈值未满者诊断为无高血压。二元分类模型的个案预测有四种结局:

  1. 真阳性(true positive, TP):诊断为有, 实际上也有高血压;
  2. 伪阳性(false positive,FP):诊断为有,实际却没有高血压;
  3. 真阴性(true negative,TN):诊断为没有,实际上也没有高血压;
  4. 伪阴性(false negative,FN):诊断为没有,实际上却有高血压。

这四种结局可以画成2 × 2的混淆矩阵:

二、 准确率(accuracy)、精确率(precision)、召回率(Recall)、F-score

补充: 阳性(正例):Positive(用P表示)
阴性(反例):Negative(用N表示)
样本的数量N = 正例 + 反例 = P + N = TP + FP + FN + TN

  1. 准确率(accuracy), 所有的预测正确(正类负类)的占总的比重。

Accuracy=TP+TNTP+FP+FNAccuracy=\frac{TP+TN}{TP+FP+FN}

  1. 精确率(也叫查准率,precision), 即正确预测为正的占全部预测为正的比例,(真正正确的占所有预测为正的比例)

Precision=TPTP+FPPrecision=\frac{TP}{TP+FP}

  1. 召回率(recall), 即正确预测为正的占全部实际为正的比例(真正正确的占所有实际为正的比例)

Recall=TPTP+FNRecall=\frac{TP}{TP+FN}

  1. F-score值,F1值为算数平均数除以几何平均数,且越大越好,将Precision和Recall的上述公式带入会发现,当F1值小时,True Positive相对增加,而false相对减少,即Precision和Recall都相对增加,即F1对Precision和Recall都进行了加权。

2F=1P+1R\frac{2}{F}=\frac{1}{P} + \frac{1}{R}
公式转化之后:
F=2PRP+R=2TP2TP+FP+FNF=\frac{2PR}{P+R}=\frac{2TP}{2TP+FP+FN}

三、各个指标意义和优缺点

  1. 准确率
    虽然准确率能够判断总的正确率,但是在样本不均衡的情况下,并不能作为很好的指标来衡量结果。
    比如在样本集中,正样本有90个,负样本有10个,样本是严重的不均衡。对于这种情况,我们只需要将全部样本预测为正样本,就能得到90%的准确率,但是完全没有意义。对于新数据,完全体现不出准确率。因此,在样本不平衡的情况下,得到的高准确率没有任何意义,此时准确率就会失效。所以,我们需要寻找新的指标来评价模型的优劣。

  2. 精确率
    精确率(Precision) 是针对预测结果而言的,其含义是在被所有预测为正的样本中实际为正样本的概率,精确率和准确率看上去有些类似,但是是两个完全不同的概念。精确率代表对正样本结果中的预测准确程度,准确率则代表整体的预测准确程度,包括正样本和负样本。

  3. 召回率
    召回率(Recall) 是针对原样本而言的,其含义是在实际为正的样本中被预测为正样本的概率。
    准确率和召回率互相影响,理想状态下肯定追求两个都高,但是实际情况是两者相互“制约”:追求准确率高,则召回率就低;追求召回率高,则通常会影响准确率。我们当然希望预测的结果precision越高越好, recall越高越好, 但事实上这两者在某些情况下是矛盾的。这样就需要综合考虑它们,最常见的方法就是F-score。 也可以绘制出P-R曲线图,观察它们的分布情况。

  4. F-score
    一般来说准确率和召回率呈负相关,一个高,一个就低,如果两个都低,一定是有问题的。 一般来说,精确度和召回率之间是矛盾的,这里引入F1-Score作为综合指标,就是为了平衡准确率和召回率的影响,较为全面地评价一个分类器。F1是精确率和召回率的调和平均。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章