【机器学习】混淆矩阵的原理(理论+图解)

简介: 【机器学习】混淆矩阵的原理(理论+图解)

简 介:下面是我在学习时候的记录并加上自己的理解。本文意在记录自己近期学习过程中的所学所得,如有错误,欢迎大家指正。

 

关键词:Python、机器学习

1.什么是混淆矩阵

 在机器学习中,我们经常遇到分类的问题,比如银行预测违规用户,那么就会有两个分类,分别是正常用户和违规用户,可以用数学表示就是-1,1,-1代表负类,1代表正类。那么什么是正类和负类呢?正类就是在我们业务需求中我们我们要的、注重的分类,对于银行用户来说,正常用户就是正类,非正常就是负类,但这也不是绝对的,正类和负类就是一个对立的概念,不一定就是说谁是正类、谁是负类,看我们的实际需求。

 那么说回来,我们的预测模型不是完全精确的,肯定是会有预测失误的时候,比如将正类预测为负类,负类预测为正类,举个例子,有10个人,其中有4个好人和6个坏人,我们的模型对这10个人的判定结果为4个好人中,有3个被正确识别为好人,但是有1个被误判为坏人,对应6个坏人,模型判定4个为坏人,将另外两个误认为好人,这是模型就会有误差,10个人中,有3个识别错误,另外7个是正确的。由于这是典型的二分类问题,我们就很容易的采用矩阵的方式进行描述,这也就引出了混淆矩阵。

从上面的矩阵中很容易看出:

4个好人有3个被预测为好人,有1个别误认为坏人

6个坏人中有2个被预测为好人,有4个被正确认为是坏人

2.相关名词解释

 从上面的图中我们可以清晰地看出每个数据被预测的所属类别,那么我们如何评估模型的好坏呢?这是就引入了几个数学名词:

  1. 真正性(True Positive,TP):样本的真实类别是正例,并且模型预测的结果也是正例
  2. 真负性(True Negative,TN):样本的真实类别是负例,并且模型将其预测成为负例
  3. 假正性(False Positive,FP):样本的真实类别是负例,但是模型将其预测成为正例
  4. 假负性(False Negative,FN):样本的真实类别是正例,但是模型将其预测成为负例

上面的3就是真正性,1就是假负性,2就是假正性,4就是真负性

从字面很好理解,第一个字真假就是代表这个类别的预测结果是否正确,第二个字正负就代表最终预测为正类还是负类

通常情况下,我们评估模型好坏的指标就是模型的准确率怎么样,也就是(TP+TN)/ ALL,但是这样有时侯不一定真正代表模型的效果就很好,你比如说现在我们有100个人,其中好人有99个,坏人只有1个,此时如果模型不做任何事,只需要把任何人都辨识为好人,我们的模型的准确率就有99%,但是这样显然不科学,因为这样的模型没有把坏人认出来,因为在显示生活我们很多时候注重的是模型对负类的识别,宁错杀100也不放过任何1个怀疑的对象,所以这种情况下准确率这种评估指标显然是不行的,我们需要的指标是识别坏人的准确性的指标。

下面的指标仍然针对上述表进行计算:

  • 准确率(accuracy):(TP+TN)/ ALL =(3+4)/ 10 准确率是所有预测为正确的样本除以总样本数,用以衡量模型对正负样本的识别能力。
  • 错误率(error rate):(FP+FN)/ ALL =(1+2)/ 10 错误率就是识别错误的样本除以总样本数。
  • 假正率(fpr):FP / (FP+TN) = 2 / (2+4)假正率就是真实负类中被预测为正类的样本数除以所有真实负类样本数。
  • 真正率(tpr):TP / (TP+FN)= 3 / (3+1)真正率就是真实正类中被预测为正类的样本数除以所有真实正类样本数。
  • 精度(precision):TP / (TP+FP)= 3 / (3+2)精确度是真实分类被预测为正类的样本数除以所有被预测为正样本的个数
  • 召回率(recall):TP / (TP+FN)= 3 / (3+1)召回率和灵敏度、假正率是一回事,就是不同的称呼名称
  • 灵敏度(sensitive):TP / (TP+FN)= 3 / (3+1)灵敏度是预测为正类的样本数除以所有真实正类样本数,用于衡量模型对正类样本的识别能力。
  • 特效度(specificity):TN / (TN+FP) = 4 / (2+4)特效度是预测为负类的样本数除以所有真实负类样本数,用于衡量模型对负类样本的识别能力。

根据我们不同的业务需求,我们需要使用不同的评估指标进行衡量模型的效果,不一定是准确率越高,模型的效果越好,要根据实际需求,综合多个模型评估指标。


目录
相关文章
|
25天前
|
机器学习/深度学习 算法 搜索推荐
【机器学习】机器学习的基本概念、算法的工作原理、实际应用案例
机器学习是人工智能的一个分支,它使计算机能够在没有明确编程的情况下从数据中学习并改进其性能。机器学习的目标是让计算机自动学习模式和规律,从而能够对未知数据做出预测或决策。
31 2
|
4天前
|
机器学习/深度学习 人工智能 算法
探索人工智能:机器学习的基本原理与Python代码实践
【9月更文挑战第6天】本文深入探讨了人工智能领域中的机器学习技术,旨在通过简明的语言和实际的编码示例,为初学者提供一条清晰的学习路径。文章不仅阐述了机器学习的基本概念、主要算法及其应用场景,还通过Python语言展示了如何实现一个简单的线性回归模型。此外,本文还讨论了机器学习面临的挑战和未来发展趋势,以期激发读者对这一前沿技术的兴趣和思考。
|
29天前
|
机器学习/深度学习 人工智能 关系型数据库
【机器学习】Qwen2大模型原理、训练及推理部署实战
【机器学习】Qwen2大模型原理、训练及推理部署实战
229 0
【机器学习】Qwen2大模型原理、训练及推理部署实战
|
1月前
|
机器学习/深度学习 运维 算法
深入探索机器学习中的支持向量机(SVM)算法:原理、应用与Python代码示例全面解析
【8月更文挑战第6天】在机器学习领域,支持向量机(SVM)犹如璀璨明珠。它是一种强大的监督学习算法,在分类、回归及异常检测中表现出色。SVM通过在高维空间寻找最大间隔超平面来分隔不同类别的数据,提升模型泛化能力。为处理非线性问题,引入了核函数将数据映射到高维空间。SVM在文本分类、图像识别等多个领域有广泛应用,展现出高度灵活性和适应性。
84 2
|
29天前
|
机器学习/深度学习 数据采集 物联网
【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
57 0
|
29天前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】GLM4-9B-Chat大模型/GLM-4V-9B多模态大模型概述、原理及推理实战
【机器学习】GLM4-9B-Chat大模型/GLM-4V-9B多模态大模型概述、原理及推理实战
87 0
|
2月前
|
机器学习/深度学习 自然语言处理 算法
扩散模型在机器学习中的应用及原理
扩散模型在机器学习中的应用及原理
|
3月前
|
机器学习/深度学习 算法 BI
机器学习笔记(一) 感知机算法 之 原理篇
机器学习笔记(一) 感知机算法 之 原理篇
|
2月前
|
机器学习/深度学习 Serverless Python
`sklearn.metrics`是scikit-learn库中用于评估机器学习模型性能的模块。它提供了多种评估指标,如准确率、精确率、召回率、F1分数、混淆矩阵等。这些指标可以帮助我们了解模型的性能,以便进行模型选择和调优。
`sklearn.metrics`是scikit-learn库中用于评估机器学习模型性能的模块。它提供了多种评估指标,如准确率、精确率、召回率、F1分数、混淆矩阵等。这些指标可以帮助我们了解模型的性能,以便进行模型选择和调优。
|
3月前
|
机器学习/深度学习 搜索推荐 PyTorch
【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术
【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术
799 2