首页 > Python机器学习 阅读数:45

二分类和混淆矩阵

二值分类器(Binary Classifier)是机器学习领域中应用最为广泛的分类器之一。在二分类的应用场景下,我们可以根据真实类别和预测类别的不同组合,将样本划分为如下四类:
  • 真正类(True Positive,简称 TP):实际为正类,且被模型预测为正类的样本。
  • 假正类(False Positive,简称 FP):实际为负类,但被模型预测为正类的样本。
  • 真负类(True Negative,简称 TN):实际为负类,且被模型预测为负类的样本。
  • 假负类(False Negative,简称 FN):实际为正类,但被模型预测为负类的样本。

显然,这四类样本是没有交集的,并且 TP+FP+TN+FN=样本总数。其中第一类和第三类是预测正确的样本,第二类和第四类是预测错误的样本。我们把样本实际为负类,但被模型预测为正类的错误称为误报(也称第 Ⅰ 类错误);把样本实际为正类,但被模型预测为负类的错误称为漏报(也称第 Ⅱ 类错误)。

TP、FP、TN 和 FN 这四类样本,一起构成了一个混淆矩阵(confusion matrix),如图 1 所示。

二分类结果的混淆矩阵
图 1:二分类结果的混淆矩阵

本质上,混淆矩阵会把实际样本分类值(true class)和模型预测分类值(predicted class)进行联列表分析。在二分类问题中,通常我们会把样本分为正类(或正例,常用“1”表示)和负类(负例,常用“-1”表示)。

对于分类而言,评估分类器最简单、最直接的标准就是分类准确率(Accuracy),即分类正确的样本数占总样本数的比例:

Accuracy=ncorrect/ntotal


针对二分类,这个准确率可具体表示为:

Accuracy=(TP+TN)/ntotal

但单纯用准确率来刻画分类算法的性能,不够严谨。有时我们还需要借助诸如查全率、查准率和 F1 分数更为细致地来评估性能。