混淆矩阵与评估指标

📒 笔记 · 2022-12-02
混淆矩阵与评估指标

混淆矩阵的相关概念和计算公式,以及深度学习中的模型的评估指标。

概念

  混淆矩阵(Confusion Matrix)又称为可能性表格或是错误矩阵。它是一种特定的矩阵用来呈现算法性能的可视化效果,通常是监督学习(非监督学习,通常用匹配矩阵:matching matrix)。其每一列代表预测值,每一行代表的是实际的类别。这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测成另一个class)。

基本格式

二分类混淆矩阵:

预测为正预测为反
真实为正√(True Positive)❌(False Negative)
真实为反❌(False Positive)√(True Negative)

√:表示正确分类

❌:表示错误分类

  • TP :True Positive,真正,即被模型预测为正的正样本
  • FN :False Negative,假负,即被预测为负的正样本
  • FP :False Positive,假正,即被预测为正的负样本
  • TN :True Negative,真负,即被预测为负的负样本

我们希望的是TP和TN越大越好,FN和FP越小越好

评估指标及公式

TP+FN为真实为正例的样本;FP+TN为真实为反例的样本;

TP+TN为预测正确的样本

  • Accuracy = $ \frac{正确分类样本数}{所有样本数} $ = $ \frac{TP+TN}{TP+TN+FP+FN} $  准确率,模型正确分类样本数占总样本数的比例(所有类别)
  • Precision = $\frac{正确分类为正例}{预测为正例的样本数}$ = $\frac{TP}{TP+FP}$ 查准率(精确率),预测为正例的数据中有多少是真的正例
  • Recall = $\frac{正确分类为正例}{真实为正例样本数}$=$\frac{TP}{TP+FN}$ 召回率,查全率,敏感性(Sensitivity),,真实为正例的数据中多少被预测出来了
  • F1score = $\frac{2}{\frac{1}{Precision}+\frac{1}{Recall}}$ = $\frac{2 \times Precision\times Recall}{Precision+Recall}$  F~1~ score是Precision和Recall的调和平均数,综合反映分类器的Precision和Recall
  • Specificity = $\frac{TN}{真实为健康的样本数}$ = $\frac{TN}{FP+TN}$  特异性
  • ROC曲线,受试者工作特性曲线。横坐标为FPR,纵坐标为TPR。

    • FPR=$\frac{FP}{N}$=$\frac{FP}{FP+TN}$ 负正类率 = 1-特异性
    • TPR=$\frac{TP}{P}$=$\frac{TP}{TP+FN}$ 真正类率 = 召回率

注:其中准确率是针对所有类别;精确率,召回率,特异度是针对每个类别进行统计。

计算例题

n=100预测为患病预测为健康
患病455
健康1535

TP = 45,FN=5,FP=15,TN=35

  • Precision = $\frac{45}{45+15}$ = 0.75  查准率
  • Recall = $\frac{45}{45+5}$ = 0.9    查全率,敏感性,召回率
  • F1-score = $\frac{2\times0.75\times0.9}{0.75+0.9}$ = 0.82 调和平均数
  • Accuracy = $\frac{45+35}{100}$ x 100%= 80% 准确率
  • Specificity = $\frac{35}{15+35}$ = 0.7   特异性

对于现在正在做的医疗领域相关的项目,我们更希望真实为患病预测为健康的这个值小。

多分类混淆矩阵(Multiclass Classifiers Confusion Matrix)

  基本结构与二分类相似。与二分类不同的是,每一类都可以计算查准率和召回率。

例:

预测为猫预测为狗预测为猪
真实为猫1523
真实为狗6120
真实为猪0422
  • Accuracy = $\frac{15+12+22}{15+2+3+6+12+4+22}$ = 76.56%
  • 猫:Precision = $\frac{15}{15+6}$ = 0.71

    Recall = $\frac{15}{15+2+3}$ = 0.75

  • 狗: Precision = $\frac{12}{2+12+4}$ =0.66

    Recall = $\frac{12}{6+12}$ = 0.66

  • 猪:Precision = $\frac{22}{3+22}$ =0.88

    Recall = $\frac{22}{22+4}$ = 0.85

  • 平均Precision = $\frac{0.71+0.66+0.88}{3}$ = 0.75

  平均Recall = $\frac{0.75+0.66+0.85}{3}$ = 0.75

  • $F_1score$= $\frac{2}{\frac{1}{平均Precision}+\frac{1}{平均Recall}}$ = $\frac{2\times平均Precision\times平均Recall}{平均Precision+平均Recall}$ = 0.75

多分类的F1score是每一类F1score的平均值

Theme Jasmine by Kent Liao