混淆矩阵

在机器学习中尤其是统计分类中,混淆矩阵(confusion matrix),也被称为错误矩阵(error matrix)。之所以叫做混淆矩阵,是因为能够很容易的看到机器学习有没有将样本的类别给混淆了。都是基于混淆矩阵的。混淆矩阵结构如下图。

混淆矩阵结构

矩阵的每一列表达了分类器对于样本的类别预测,矩阵的每一行则表达了版本所属的真实类别。每个元素名称都由两部分组成:1.真或假,2.正例或反例。真和假是预测结果是否正确,正例反例是预测的结果。可以看出,对角线的元素是预测正确的元素。

下面还是以前文锤哥的例子讲混淆矩阵。假设锤哥在鉴宝节目鉴别了100个瓷器。其中真品(正例)80个,赝品(反例)20个。锤哥大部分都看准了,但也有的看走了眼。错把3个赝品当成了真品,错把5个真品当成了赝品。这样锤哥鉴定结果为真品78个,其中75个是真真品,3个是假真品;赝品22个,其中17个是真赝品,5个是假赝品。画出混淆矩阵如下。

锤哥的混淆矩阵

混淆矩阵用最简洁的性质准确刻画了分类器的优劣,是大多数分类器评估指标的基础,多数指标都是从混淆矩阵衍生出来的。

准确率/accuracy

从混淆矩阵看出,对角线是预测正确的样本数,反对角线是预测错误的样本数。将对角线元素加和得到所有预测正确的个数,除以总样本数就得到了准确率。公式:accuracy = (TP+TN) / (TP+TN+FP+FN)。

准确率是全部样本中预测正确的比例,没有将正例和反例分开考察。

锤哥的例子中,accuracy = (75 + 17) / 100 = 0.92。代表锤哥每做一个鉴定,有92%的概率鉴定对。

查准率/精确率/precision/P

查准率是预测为正例的样本中,实际为正例的占比。是锤哥所有鉴定中,鉴定对的比例。

公式:P = TP / (TP+FP)。是对预测正例的预测准确性的一种度量。

锤哥的例子中,P = 75 / (75 + 3) = 0.9372。代表如果一个瓷器是正品,锤哥有93.75%的概率也鉴定为正品。(与R的交换)

查全率/召回率/recall/R

查全率是实际为正例的样本中,预测为正例的占比。是实际为正品中,被锤哥鉴定为正品的瓷器占比。

公式:R = TP / (TP+FN)。是对真实正例的预测覆盖面的一种度量。

锤哥的例子中,R = 75 / (75 + 5) = 0.9615。代表如果锤哥将一个瓷器鉴定为正品,这个瓷器有96.15%的概率确实为正品。

灵敏度/真正例率/sensitivity/TPR

召回率的另一种叫法。公式:TPR = TP / (TP+FN)。

特异度/真反例率/specificity/TNR

特异度是实际为反例的样本中,预测为反例的占比。是实际为赝品的瓷器中,被锤哥鉴定为赝品的占比。

公式:TNR = TN / (FP+TN)。是对真实反例的预测覆盖面的一种度量。

锤哥的例子中,TNR = 17 / (3 + 17) = 0.85。代表如果锤哥将一个瓷器鉴定为赝品,这个瓷器有85%的概率确实为赝品。

误诊率/假正例率/FPR

误诊率是实际为反例的样本中,预测为正例的占比。是实际为赝品的瓷器中,被锤哥鉴定为正品的瓷器占比。

公式:FPR = 1 - TNR = FP / (FP+TN)。和TNR一样,是对真实反例的预测覆盖面的一种度量。

锤哥的例子中,FPR = 3 / (3 + 17) = 0.15。代表如果锤哥将一个瓷器鉴定为赝品,这个瓷器有15%的概率实际为正品。

漏诊率/假反例率/FNR

漏诊率是实际为正例的样本中,预测为反例的占比。是实际为正品的瓷器中,被锤哥鉴定为赝品的占比。

公式:FNR = 1 - TPR = TP / (TP+FN)。和TPR 一样,是对真实正例的预测覆盖面的一种度量。

锤哥的例子中,FNR = 3 / (75 + 3) = 0.0385。代表如果锤哥将一个瓷器鉴定为正品,这个瓷器有3.85%的概率实际为赝品。

总结

准确率是整体刻画预测准确性的指标。查准率和查全率是从正例预测角度的一对度量指标。灵敏度和特异度,漏诊率和误诊率是从预测覆盖面角度的一对度量指标。前五个指标,分子都是预测正确个数。后两个指标,分子都是预测错误的个数。

查准率和查全率是负相关的关系,一般此消彼长(P-R曲线图形)。要提升查准率,必然将条件设置的严格一些,以尽可能将反例排除,这就导致了部分正例也被排除,查全率下降;要提升查全率,必然将条件设置的宽松一些,以尽可能将正例包含,这就导致了部分反例也被包含,查准率下降。

真正例率和假正例率以正相关的关系,一般变化方向相同(ROC曲线图形)。要提升真正例率(查全率)必然将条件设置的宽松一些,以尽可能将正例包含,这就导致了部分反例也被包含,假正利率升高。真反例率和假反例率的关系相同。

本文作者:曲曲菜(微信公众号:曲曲菜)

原创作品,未标明作者不得转载。

更多AI和金融知识,长按图片关注作者公众号

python多分类画混淆矩阵_【AI基础】分类器评估一:混淆矩阵、准确率、精确率、召回率、灵敏度、特异度、误诊率、漏诊率...相关推荐

  1. python多分类画roc曲线_利用python制作ROC曲线进行多分类

    使用label_binarize:import matplotlib.pyplot as plt from sklearn import svm, datasets from sklearn.mode ...

  2. python 多分类画auc曲线和macro-average ROC curve

    最近帮一个人做了一个多分类画auc曲线的东西,不过最后那个人不要了,还被说了一顿,心里很是不爽,anyway,我写代码的还是要继续写代码的,所以我准备把我修改的代码分享开来,供大家研究学习.处理的数据 ...

  3. 分类器评估指标——混淆矩阵 ROC AUC KS AR PSI Lift Gain

    目录 1.混淆矩阵 混淆矩阵原理 混淆矩阵的python代码 2.准确率(Accuracy).精确率(Precision).灵敏度(Sensitivity).召回率(Recall).特异度(Speci ...

  4. 【模型评估】混淆矩阵(confusion_matrix)之 TP、FP、TN、FN;敏感度、特异度、准确率、精确率

    你这蠢货,是不是又把酸葡萄和葡萄酸弄"混淆"啦!!!这里的混淆,我们细品,帮助我们理解名词"混淆矩阵" 上面日常情况中的混淆就是:是否把某两件东西或者多件东西给 ...

  5. 混淆矩阵 灵敏度 特异度 阳性预测值 阴性预测值 阳性似然比 阴性似然比

    http://iccm.cc/classification-model-evaluation-confusion-matrix/ 分类器评价与在R中的实现:混淆矩阵 Posted by c cm on ...

  6. 混淆矩阵介绍以及评价指标(准确率,精确率,召回率,特异度,假警报率,G-mean,F1_score,KS值)

    混淆矩阵 混淆矩阵(Confusion Matrix),可以理解为就是一张表格.混淆这个名字还是很有内涵的,咳咳. 混淆矩阵是判断分类好坏程度的一种方法.另外还有ROC曲线和AUC曲线. 以分类模型中 ...

  7. 分类性能度量指标:ROC曲线、AUC值、正确率、召回率、敏感度、特异度

    在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度.错误率指的是在所有测试样例中错分的样例比例.实际上,这样的度量错误掩盖了样例如何被分错的事实.在机器学习中,有一个普遍适用的称为混淆矩阵 ...

  8. python鸢尾花分类svm测试集_使用SVM对鸢尾花分类

    使用SVM对鸢尾花分类 百度AI Studio中的一个入门项目,增加了自己在实践时的一些注释,对小白来说阅读更顺畅.源码和数据在github上. 任务描述: 构建一个模型,根据鸢尾花的花萼和花瓣大小将 ...

  9. python导入数据画柱状图代码_在Linux下使用Python的matplotlib绘制数据图的教程

    如果你想要在Linxu中获得一个高效.自动化.高质量的科学画图的解决方案,应该考虑尝试下matplotlib库.Matplotlib是基于python的开源科学测绘包,基于python软件基金会许可证 ...

最新文章

  1. 解决rsync 同步auth failed on module问题
  2. 程序员的奋斗史(三十五)——人在囧途之应聘篇(五)
  3. 微软Azure的access control - IAM
  4. flash写保护原理_为什么固态会掉盘?著名的30分钟大法修复是什么原理?
  5. 英语口语 week11 Friday
  6. Exception in thread main java.lang.UnsupportedClassVersionError的另类解决办法
  7. 在一个公司10年,会怎么样?
  8. Vue3 --- vue-router4 编程导航
  9. 搜狗用这个骚技术,把百度逼上了绝路...
  10. .Net FSO简单小结(简单到不能再简单了)
  11. C++11 Unicode 支持
  12. C++学习 8.2 - 类及类成员
  13. SpringAOP:连接点和切点的区别
  14. 解决Invalid bound statement (not found): com.hengjun.mapper.UserMapper.selectByExample,
  15. 对未来人工智能的一些预测和想法
  16. 使用函数求最大公约数 pta_13个数学函数应用技巧解读,易学易懂,远离数学计算困扰...
  17. 步进电机和步进驱动器的介绍、接线、细分和控制方法
  18. K-Mediods算法
  19. 2008年网游发展热点:教育网游产业分析
  20. linux运行微软运行库,Windows Desktop Runtime(微软官方运行库) V3.1.6

热门文章

  1. 加速神经网络收敛的萃取精馏权重法
  2. 【控制】《鲁棒控制-线性矩阵不等式处理方法》-俞立老师-第8章-鲁棒方差控制
  3. 【控制】《多智能体系统一致性与复杂网络同步控制》郭凌老师-第4章-具有扰动的混沌系统主-从同步
  4. 第四章4.1 4.2 快速傅里叶变换FFT-介绍
  5. stm32逆向与安全科普,bin文件逆向反汇编
  6. PDF转Word技巧,看这篇足够
  7. greendao引起的NoClassDefFoundError异常解决
  8. 【288天】每日项目总结系列026(2017.11.20)
  9. 不常见但很有用的chrome调试工具使用方法
  10. mysql操作命令梳理(3)-pager