准确率:
准确率有的时候是骗人的,举一个例子来说,如果有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)
推荐阅读
- paddle|动手从头实现LSTM
- 人工智能|干货!人体姿态估计与运动预测
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- 读书笔记|《白话大数据和机器学习》学习笔记1
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- Python机器学习基础与进阶|Python机器学习--集成学习算法--XGBoost算法
- 深度学习|深度学习笔记总结
- 机器学习|机器学习Sklearn学习总结
- 机器学习|线性回归原理与python实现