混淆矩阵-


  1. 定义
  2. 混淆矩阵(Confusion Matrix)是在机器学习和统计学的分类问题中,用于评估分类模型性能的一种工具。它是一个表格,展示了分类模型预测结果和实际真实标签之间的比较情况。
  3. 对于一个二分类问题,混淆矩阵是一个(2\times2)的矩阵,包含真正例(True Positive,TP)、假正例(False Positive,FP)、真反例(True Negative,TN)和假反例(False Negative,FN)这四个元素。例如,在判断一封邮件是否为垃圾邮件的任务中,如果模型正确地将垃圾邮件预测为垃圾邮件,这就是一个真正例;如果将正常邮件错误地预测为垃圾邮件,就是假正例。

  4. 结构与元素含义

  5. 以二分类为例,混淆矩阵的结构如下: | 预测为正类 | 预测为负类 | | ---- | ---- | | 真正例(TP) | 假反例(FN) | | 假正例(FP) | 真反例(TN) |
  6. 真正例(TP):实际为正类,且模型也预测为正类的样本数量。例如,在医学诊断中,实际患有某种疾病(正类)的患者被模型正确诊断为患有该疾病的人数。
  7. 假正例(FP):实际为负类,但模型预测为正类的样本数量。比如,在疾病诊断中,实际没有患病(负类)的人被模型误诊为患病的人数。
  8. 真反例(TN):实际为负类,模型也预测为负类的样本数量。例如,没有患病的人被模型正确诊断为没有患病的人数。
  9. 假反例(FN):实际为正类,但模型预测为负类的样本数量。就像在疾病诊断中,实际患有疾病的人被模型误诊为没有患病的人数。

  10. 基于混淆矩阵的评估指标

  11. 准确率(Accuracy):定义为(\frac{TP + TN}{TP + TN + FP + FN}),它表示模型预测正确的样本比例。例如,在一个有(100)个样本的分类任务中,(TP = 40),(TN = 30),(FP = 10),(FN = 20),则准确率为(\frac{40 + 30}{40 + 30 + 10 + 20}=0.7),即模型的准确率为(70\%)。
  12. 精确率(Precision):计算公式为(\frac{TP}{TP + FP}),它反映了模型预测为正类的样本中有多少是真正的正类。例如,若(TP = 40),(FP = 10),则精确率为(\frac{40}{40 + 10}=0.8),即模型预测为正类的样本中有(80\%)是真正的正类。
  13. 召回率(Recall)或敏感度(Sensitivity):等于(\frac{TP}{TP + FN}),它表示实际为正类的样本中有多少被模型正确地预测为正类。比如,当(TP = 40),(FN = 20)时,召回率为(\frac{40}{40 + 20}=\frac{2}{3}),意味着实际正类样本中有(\frac{2}{3})被模型正确预测。
  14. F1 - score:是精确率和召回率的调和平均数,计算公式为(F1 = 2\times\frac{Precision\times Recall}{Precision + Recall})。它综合考虑了精确率和召回率,当精确率和召回率都较高时,(F1 - score)也较高,能更全面地评估模型性能。

  15. 多分类问题中的混淆矩阵

  16. 对于多分类问题(例如,将图像分为猫、狗、兔子等多个类别),混淆矩阵是一个(n\times n)的矩阵,其中(n)是类别数。行表示实际的类别,列表示预测的类别。
  17. 例如,在一个三分类问题中,混淆矩阵可能如下: | 预测为A类 | 预测为B类 | 预测为C类 | | ---- | ---- | ---- | | (TP_{A})(A类真正例) | (FP_{A - B})(A类被误判为B类) | (FP_{A - C})(A类被误判为C类) | | (FP_{B - A})(B类被误判为A类) | (TP_{B})(B类真正例) | (FP_{B - C})(B类被误判为C类) | | (FP_{C - A})(C类被误判为A类) | (FP_{C - B})(C类被误判为B类) | (TP_{C})(C类真正例) |
  18. 在多分类情况下,也可以通过计算每个类别的精确率、召回率等指标来评估模型性能,方法与二分类类似,只是需要分别对每个类别进行计算。