机器学习模型评价指标 – 混淆矩阵
在机器学习领域中,混淆矩阵(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
假正率,表示的是,模型预测为正类的样本中,占模型负类样本数量的比值。
Fall−out=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这些是判断分类模型总体的标准。我们可以根据实际需要,得出不同的效果。