【零基础学机器学习 13】 混淆矩阵 最佳指南以及代码实战

? 作者简介:程序员半夏 , 一名全栈程序员,擅长使用各种编程语言和框架,如、React、Node.js、Java、、、MySQL等.专注于大前端与后端的硬核干货分享,同时是一个随缘更新的UP主. 你可以在各个平台找到我!
本文收录于专栏: 零基础学机器学习
专栏介绍: 本专栏将帮助您了解机器学习、其工作原理以及如何使用它 。本教程包含以下内容:监督和无监督学习、线性回归、随机森林算法、朴素贝叶斯分类器、K-means聚类算法等等等基础学习基础知识,以及各种实战案例 。
文章目录用预测心脏病 拓展
在机器学习中,分类用于将数据划分为不同的类别 。但在清理、预处理数据并训练我们的模型之后,我们如何知道分类模型的性能是否良好呢?这就是混淆矩阵的作用 。
什么是混淆矩阵
分类模型具有多个类别输出 。大多数误差度量将计算模型的总误差,但我们无法找到模型中的单个错误实例 。模型可能将某些类别误分类得比其他类别更多,但我们无法通过标准准确性度量来看到这一点 。
此外,假设给定数据中存在显著的类别不平衡,即某个类别的数据实例比其他类别多,模型可能会对所有情况预测出占多数的类别,并具有较高的准确性得分;而实际上它并没有预测到少数类别 。这就是混淆矩阵的用途 。
混淆矩阵( )是在机器学习和统计学中广泛使用的一种表格,用于评估分类模型的性能 。它以表格布局呈现分类问题的预测和结果的不同结果 。它是将真实类别和预测类别进行对比的一种方式,通常用于二元分类问题,其中真实类别和预测类别都只有两种可能的取值:正类和负类 。
混淆矩阵的四个元素分别是:
混淆矩阵可以用以下形式表示:
实际为正例()实际为负例()
预测为正例()
TP
FP
预测为负例()
FN
TN
通过混淆矩阵,可以计算出多种分类模型的性能指标,例如准确率、精确率、召回率、F1值等 。其中,准确率是指模型正确分类的样本占总样本数的比例;精确率是指模型预测为正类的样本中,实际为正类的样本占比;召回率是指实际为正类的样本中,被模型预测为正类的样本占比;F1值是精确率和召回率的调和平均数,用于综合评估模型的性能 。
总之,混淆矩阵是评估分类模型性能的重要工具,通过对混淆矩阵的分析,可以了解模型在不同情况下的表现,进而优化模型,提高分类准确率 。
通过混淆矩阵计算其他指标
考虑一个基于英语或西班牙语的分类器所生成的混淆矩阵 。
实际正例实际负例
预测正例
真正例(TP)= 86
假正例(FP)= 12
预测负例
假负例(FN)= 10
真负例(TN)= 79
从上面的图表中,我们可以看到:
真正例(TP)= 86
真负例(TN)= 79
假正例(FP)= 12
假负例(FN)= 10
从矩阵上看,我们的模型表现并不十分清晰 。为了找出模型的准确性,我们使用以下指标:
准确率-
准确率():用于找到分类正确的值的比例 。它告诉我们分类器的正确率 。准确率是所有真实值之和除以总数 。
A c c u r a c y = ( T P + T N ) / ( T P + F P + T N + F N )= (TP + TN) / (TP + FP + TN + FN) =(TP+TN)/(TP+FP+TN+FN)
在这种情况下:
= (86 + 79) / (86 + 79 + 12 + 10) = 0.8823 = 88.23%
精确率-
精确率():用于计算模型正确分类正值的能力 。它是真正值除以预测正值的总数 。
P r e c i s i o n = T P / ( T P + F P )= TP / (TP + FP) =TP/(TP+FP)
在这种情况下:
= 86 / (86 + 12) = 0.8775 = 87.75%
召回-