混淆矩阵小指南

2021-04-07 Views 科技583字3 min read
featureimg

简单记录一下混淆矩阵、准确率、精确率、召回率、F1值的相关概念

混淆矩阵

混淆矩阵通常是用来描述分类器在一组测试数据上的性能的一个表格(这些测试数据的真实值是已知的)。大概形式如下:

# 分类结果
真实类别 正例 反例
正例 TP(真正例) FN(假反例)
反例 FP(假正例) TN(真反例)

其中的相关术语经常让人感到困惑(嗯,主要是我自己),因此特意记录一下。

相关术语

  1. 真正例(TP,true positive),即分类器预测为正例且真实情况也为正例的样本
  2. 假正例(FP,false positive),即分类器预测为正例但真实情况为负例的样本
  3. 真反例(TN,true negative),即分类器预测为反例且真实情况也为反例的样本
  4. 假反例(FN,false negative),即分类器预测为反例但真实情况为正例的样本
    简单找规律呢就是第一个真假代表预测的评判,即分类器是否正确预测;第二个正与反代表分类器预测的样本分类情况。

评价指标

在sklearn中,常见的评价指标有准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1值(F1_score) 。

准确率 Accuracy

准确率定义为正确分类的样本数占样本总数的百分比。
准确率是最直观的性能衡量标准,它是正确预测的观测值与总观测值的比率。

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

精确率 Precision

精确率是针对分类器的预测结果而言的,定义为正确预测的正例样本与预测为正例的样本数的比率。

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

召回率 Recall

召回率则是针对数据样本而言,定义为正确预测的正例样本与样本中所有的正例的比率。

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

F1_score

F1值是基于召回率和精确率计算的,它是精确率与召回率的加权平均值。

F1score=2PrecisionRecallPrecision+RecallF1_score = 2\ast \frac{Precision\ast Recall}{Precision+Recall}

好看的混淆矩阵plot:https://github.com/wcipriano/pretty-print-confusion-matrix

EOF