混淆矩阵

什么是混淆矩阵(Confusion Matrix)?我们在做分类问题时会用到机器学习分类模型,不管是二分类还是多分类问题,我们都要对模型的性能进行评估,看看模型的分类效果是否好,有多好!我们常常会选择一个合适的评估指标进行衡量,比如我们熟悉的ACC,AUC,F1-score,召回率等等,而混淆矩阵也是和它们一样的功能,混淆矩阵可以直观的展示我们分类器对每个样本的分类情况,知道有哪些类别分正确了,哪些类别被错误地分到了其他类别,混淆矩阵就做这么个事。

概括:混淆矩阵就是我们用来评估模型分类好坏的(特别是在类别不均衡的时候!)

概念

首先我们来看一张图:

这张图是我从网上找的经典解释图,TN(真正例),FP(假正例),FN(假反例),TP(真反例),上面的图是对于二分类的举例,多分类是一个道理。值得注意的是,我们常用的评价指标F1-score,ACC等四个指标都是通过混淆矩阵进行计算的。

重要性

混淆矩阵的用处非常大,我们评估一个模型的性能不能只从局限的一个方面或者两个方面,而是要从多方面去衡量,这样的模型才更有鲁棒性。特别是当我们遇到数据类别不均衡的时候就可以体现混淆矩阵的优势。

举个例子
predict= [0, 0, 0, 0, 0, 0, 0 ,0, 0, 0] (预测值)
actual= [0, 0, 0, 1, 0, 0, 0, 0, 0, 1] (真实值)
我们可以看到,例子中“1”样本为2个,“0”样本为8个,正负样本比例为1:4,此时如果我们通过ACC(准确率)来评估模型,当我们模型预测值全部为0时,准确率可以达到80%,非常高,那是不是说明模型非常好呢,并不是!说白了,就算我们不用模型,全部蒙0都可以有80%的准确率,那模型有什么用呢,根本没用,模型有没有学到有用的特征我们根本就判断不了,这时候我们可以画混淆矩阵来看看:

我们看看混淆矩阵的对角线,对“0”类8个全部预测正确了,但是对于“1”类是一个没对啊!现在看得就很明白了,我们这个模型是基本没有什么用的。而如果仅仅是通过准确率去评估的话,我们就会被欺骗,还以为模型挺不错的,事实上毛用没有哈哈。

可视化

sklearn库中提供了可以让我们计算混淆矩阵的接口,而我们为了更加直观的观察混淆矩阵,我们最好画个混淆矩阵图:

from sklearn.metrics import confusion_matrix
import seaborn as sns
import pandas as pd
classes=[0,1]
guess = [0, 0, 0, 0, 0, 0, 0 ,0, 0, 0]
fact = [0, 0, 0, 1, 0, 0, 0, 0, 0, 1]
cm = confusion_matrix(guess, fact,labels=classes)
df=pd.DataFrame(cm,index=classes,columns=classes)
sns.heatmap(df,annot=True)

这个画出来就是上面那个例子的混淆矩阵图,如果要画其他数据的图直接换数据即可,颜色也可以根据自己的喜好调哦!

写在最后

本人才疏学浅,如果有理解不到位或者错误的地方请指正!

机器学习模型评估——混淆矩阵相关推荐

  1. 混淆矩阵评价指标_机器学习模型评价指标 -- 混淆矩阵

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

  2. 机器学习模型评价指标 -- 混淆矩阵

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

  3. R语言使用yardstick包的conf_mat函数计算多分类(Multiclass)模型的混淆矩阵、并使用summary函数基于混淆矩阵输出分类模型评估的其它详细指标(kappa、npv等13个)

    R语言使用yardstick包的conf_mat函数计算多分类(Multiclass)模型的混淆矩阵(confusion matrix).并使用summary函数基于混淆矩阵输出分类模型评估的其它详细 ...

  4. 机器学习模型评估指标总结!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:太子长琴,Datawhale优秀学习者 本文对机器学习模型评估指标 ...

  5. 机器学习模型评估与超参数调优详解

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤  深圳大学,Datawhale高校群成员 机器学习分为两类 ...

  6. 【机器学习基础】机器学习模型评估教程!

    译者:追风者,Datawhale成员 如何在投入生产前评估机器学习模型性能? 想象一下,你训练了一个机器学习模型.也许,可以从中选几个候选方案. 你在测试集上运行它,得到了一些质量评估.模型没有过度拟 ...

  7. 【机器学习基础】非常详细!机器学习模型评估指标总结!

    作者:太子长琴,Datawhale优秀学习者 本文对机器学习模型评估指标进行了完整总结.机器学习的数据集一般被划分为训练集和测试集,训练集用于训练模型,测试集则用于评估模型.针对不同的机器学习问题(分 ...

  8. 机器学习——模型评估,选择与验证

    文章目录 机器学习--模型评估,选择与验证 训练集与测试集 为什么要有训练集与测试集 如何划分训练集与测试集 欠拟合与过拟合 欠拟合 过拟合 偏差与方差 模型误差来源 偏差与方差 验证集与交叉验证 为 ...

  9. 二、机器学习模型评估

    二.机器学习模型评估 2.1 模型评估:基本概念 错误率(Error Rate) 预测错误的样本数a占样本总数的比例m E = a m E=\frac{a}{m} E=ma​ 准确率(Accuracy ...

最新文章

  1. 控制文字长度,多出的文字用省略号代替
  2. 1060 Are They Equal (25 分)【难度: 一般 / 知识点: 模拟 字符串处理】
  3. java io文件操作_java IO 文件操作方法总结
  4. 浅谈HTTP中Get与Post的区别_转
  5. 2月25日线上见!iQOO 3发布会官宣:定义新速度
  6. 常用Maven插件终极大全,速度收藏!
  7. Java中解决String无法存储大量字符串的问题,解析Base64编码的图片并保存到本地
  8. 第一章 spss入门
  9. 极光设置一级二级标题
  10. HDU 1521 排列组合 (指数型母函数)
  11. [转]你需要个人知识管理(PKM)吗?
  12. SVN的正确使用方法以及疑难问题的处理(持续更新与补充)
  13. 教育部中央电教馆—家庭教育指导师证书
  14. 【移动安全高级篇】————5、Andorid APK反逆向解决方案---梆梆加固原理探寻
  15. 咕咕机三代变萌后,到底有多好玩
  16. vba 执行网页javascript_Excel中使用JavaScript的方法
  17. 我怀疑你在我身上按了监控,考研狗的真实现状
  18. PLC单片机实验开发系统装置QY-DPJ12
  19. 遥感影像生成tfw文件
  20. 温度控制模块项目总结

热门文章

  1. 互联网开发搞手游创作1-为何有这想法
  2. 关于Linux的本地回环路由lo [127.0.0.1 ]
  3. C语言那些事之标点符号
  4. gps wgs84坐标与高德gcj02坐标互转
  5. Mysql的索引为什么使用B+树而不使用跳表?
  6. VB-改变文件只读属性
  7. 安装Linux时grub2安装失败,尝试安装Ubuntu作为计算机唯一的操作系统时,我收到错误'grub-install/dev/sda failed'。 - Ubuntu问答...
  8. uniapp 自定义图标icon
  9. 留学生最常用最全的五个英文文献检索网站
  10. 爬虫07 爬取阿里旅行特价机票