模型的评估方法-准确率与混淆矩阵

准确率:
准确率有的时候是骗人的,举一个例子来说,如果有100只动物,其中90只猫,10只狗,我们训练了一个模型,这个模型将我们的这100只动物全都预测成了猫,从我们主观上判断这个模型肯定是不好的(我的目的是为了区分,他却给我预测成全部都是一样的),但是我们从准确率来看,P(猫)=90/100=90%,预测猫的准确率还挺高的,所以我们说有的时候准确率是骗人的,在很多情况下不能说明一个模型的好坏。所以又引入了混淆矩阵。
混淆矩阵:
首先我们来说一下什么是混淆矩阵,混淆矩阵(confusion matrix),也被称为错误矩阵(error matrix)。矩阵的每一列表达了分类器对样本的预测类别,矩阵的每一行则表达了样本所属的真实类别,之所以叫做:“混淆矩阵”,是因为能够很容易的看到机器学习有没有将样本的类别给混淆了(或者说可以清楚地看到有多少样本被分类分对了或者是分错了)。
以下有几个概念需要先说明:

TP(True Positive): 真实为0,预测也为0 FN(False Negative): 真实为0,预测为1 FP(False Positive): 真实为1,预测为0 TN(True Negative): 真实为0,预测也为0

【模型的评估方法-准确率与混淆矩阵】可以这样理解:True和False分别代表预测值的对错,Positive代表真实值为1,Negative代表真实值为0
混淆矩阵的形式如下:
模型的评估方法-准确率与混淆矩阵
文章图片

公式的计算:
准确度(Accuracy) = (TP+TN) / (TP+TN+FN+TN)
精度(precision, 或者PPV, positive predictive value) = TP / (TP + FP)
召回(recall, 或者敏感度,sensitivity,真阳性率,TPR,True Positive Rate) = TP / (TP + FN)
特异度(specificity,或者真阴性率,TNR,True Negative Rate) = TN / (TN + FP)

    推荐阅读