机器学习模型评价指标 – 混淆矩阵

在机器学习领域中,混淆矩阵(confusion matrix)是一种评价分类模型好坏的形象化展示工具。其中,矩阵的每一列表示的是模型预测的样本情况;矩阵的每一行表示的样本的真实情况。

1. 混淆矩阵的举例

例如用一个分类模型来判别一个水果是苹果还是梨,混淆矩阵将会模型的预测结果总结成如下表所示的表格。

 模型预测结果 
    苹果
真实结果 苹果 10
  3

通过上述表格可以看出,样本的数量一共是10+2+3+15=3010+2+3+15=30个样本。其中苹果有10+2=1210+2=12个,梨有3+15=183+15=18个。该模型预测的苹果的数量是10+3=1310+3=13个,有1010个是预测正确的,33个是预测错误的。该模型预测的梨的数量是2+15=172+15=17个,其中有1515个是预测正确的,22个是预测错误的。

2. 混淆矩阵

对于一个二分类的模型,其模型的混淆矩阵是一个2×22×2的矩阵。如下图所示:

 Predicted condition 
    positive
True condition positive True Positive
  negative False Positive

混淆矩阵比模型的精度的评价指标更能够详细地反映出模型的”好坏”。模型的精度指标,在正负样本数量不均衡的情况下,会出现容易误导的结果。

其中,列是模型预测的结果,行是样本真实的结果。四个矩阵元素的含义分别是:

2.1 True Positive

真正类(TP),样本的真实类别是正类,并且模型预测的结果也是正类。

2.2 False Negative

假负类(FN),样本的真实类别是正类,但是模型将其预测成为负类。

2.3 False Positive

假正类(FP),样本的真实类别是负类,但是模型将其预测成为正类。

2.4 True Negative

真负类(TN),样本的真实类别是负类,并且模型将其预测成为负类。

3. 混淆矩阵延伸出的各个评价指标

从混淆矩阵中,可以衍生出各种评价的指标。如下是截取的wiki上的一个截图(https://en.wikipedia.org/wiki/Confusion_matrix) 
这里写图片描述
各个指标的定义以及含义如下所示:

3.1 Accuracy

模型的精度,即模型预测正确的个数 / 样本的总个数 
Accuracy=TP+TNTP+FN+FP+TNAccuracy=TP+TNTP+FN+FP+TN 
一般情况下,模型的精度越高,说明模型的效果越好。

3.2 Positive predictive value (PPV, Precision)

查准率,阳性预测值,在模型预测为正类的样本中,真正为正类的样本所占的比例。 
Precision=TPTP+FPPrecision=TPTP+FP 
一般情况下,查准率越高,说明模型的效果越好。

3.3 False discovery rate (FDR)

错误发现率,表示在模型预测为正类的样本中,真正的负类的样本所占的比例。 
FDR=FPTP+FPFDR=FPTP+FP 
一般情况下,错误发现率越小,说明模型的效果越好。

3.4 False omission rate (FOR)

错误遗漏率,表示在模型预测为负类的样本中,真正的正类所占的比例。即评价模型”遗漏”掉的正类的多少。 
FOR=FNFN+TNFOR=FNFN+TN 
一般情况下,错误遗漏率越小,模型的效果越好。

3.5 Negative predictive value (NPV)

阴性预测值,在模型预测为负类的样本中,真正为负类的样本所占的比例。 
NPV=TNFN+TNNPV=TNFN+TN 
一般情况下,NPV越高,说明的模型的效果越好。

3.6 True positive rate (TPR, Recall)

召回率,真正类率,表示的是,模型预测为正类的样本的数量,占总的正类样本数量的比值。 
Recall=TPTP+FNRecall=TPTP+FN 
一般情况下,Recall越高,说明有更多的正类样本被模型预测正确,模型的效果越好。

3.7 False positive rate (FPR), Fall-out

假正率,表示的是,模型预测为正类的样本中,占模型负类样本数量的比值。 
Fallout=FPFP+TNFall−out=FPFP+TN 
一般情况下,假正类率越低,说明模型的效果越好。

3.8 False negative rate (FNR), Miss rate

假负类率,缺失率,模型预测为负类的样本中,是正类的数量,占真实正类样本的比值。 
FNR=FNFN+TNFNR=FNFN+TN

缺失值越小,说明模型的效果越好。

3.9 True negative rate (TNR)

一般情况下,真负类率越高,说明的模型的效果越好 
TNR=TNFN+TN

 

混淆矩阵是除了ROC曲线和AUC之外的另一个判断分类好坏程度的方法。

以下有几个概念需要先说明:

TP(True Positive): 真实为0,预测也为0

FN(False Negative): 真实为0,预测为1

FP(False Positive): 真实为1,预测为0

TN(True Negative): 真实为0,预测也为0

 

:分类模型总体判断的准确率(包括了所有class的总体准确率)

: 预测为0的准确率

: 真实为0的准确率

: 真实为1的准确率

: 预测为1的准确率

: 对于某个分类,综合了Precision和Recall的一个判断指标,F1-Score的值是从0到1的,1是最好,0是最差

: 另外一个综合Precision和Recall的标准,F1-Score的变形

 

举个经典的二分类例子:

                      

,            ,             

如果是多分类的呢?举一个三分类的例子:

,     ,     

因此我们知道,计算Specificity,Recall,Precision等只是计算某一分类的特性,而Accuracy和F1-Score这些是判断分类模型总体的标准。我们可以根据实际需要,得出不同的效果。