详细讲解分类模型评价指标(混淆矩阵)python示例

这篇具有很好参考价值的文章主要介绍了详细讲解分类模型评价指标(混淆矩阵)python示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

1、回归模型(regression):

对于回归模型的评估方法,通常会采用平均绝对误差(MAE)、均方误差(MSE)、平均绝对百分比误差(MAPE)等方法。

2、聚类模型(clustering):

对于聚类模型的评估方法,较为常见的一种方法为轮廓系数(Silhouette Coefficient ),该方法从内聚度和分离度两个方面入手,用以评价相同数据基础上不同聚类算法的优劣。

3、分类模型(classification):

本文主要讲解分类模型评价的一种方法---混淆矩阵。混淆矩阵是评判模型结果的指标,属于模型评估的一部分。此外,混淆矩阵多用于判断分类器(Classifier)的优劣,适用于分类型的数据模型,如分类树(Classification Tree)、逻辑回归(Logistic Regression)、线性判别分析(Linear Discriminant Analysis)等方法。

在分类型模型评判的指标中,常见的方法有如下三种:

详细讲解分类模型评价指标(混淆矩阵)python示例

对于二分类问题,除了计算正确率方法外,我们常常会定义正类和负类,由真实类别(行名)与预测类别(列名)构成混淆矩阵。首先直观的来看看如下表格图(混淆矩阵图):

详细讲解分类模型评价指标(混淆矩阵)python示例

文字详细说明:

  • TN:将负类预测为负类(真负类)真实值是negative,模型认为是negative的数量

  • FN:将正类预测为负类(假负类)真实值是positive,模型认为是negative的数量

  • TP:将正类预测为正类(真正类)真实值是positive,模型认为是positive的数量

  • FP:将负类预测为正类(假正类)真实值是negative,模型认为是positive的数量

二级指标

最后根据混淆矩阵得出分类模型常用的分类评估指标:

  1. 准确率(Accuracy)—— 针对整个模型

  1. 精确率(Precision)

  1. 灵敏度(Sensitivity):就是召回率(Recall)

  1. 特异度(Specificity)

上述对应指标计算公式和定义如下面表格:

详细讲解分类模型评价指标(混淆矩阵)python示例

通过上面的四个二级指标,可以将混淆矩阵中数量的结果转化为0-1之间的比率。便于进行标准化的衡量。在这四个指标的基础上在进行拓展,会产令另外一个三级指标

三级指标

这个指标叫做F1 Score。他的计算公式是:

详细讲解分类模型评价指标(混淆矩阵)python示例

其中,P代表Precision,R代表Recall。

F1-Score指标综合了Precision与Recall的产出的结果。F1-Score的取值范围从0到1的,1代表模型的输出最好,0代表模型的输出结果最差。

混淆矩阵用途

混淆矩阵能够帮助我们迅速可视化各种类别误分为其它类别的比重,这样能够帮我们调整后续模型,比如一些类别设置权重衰减等在一些论文的实验分析中,可以列出混淆矩阵,行和列均为 label 种类,可以通过该矩阵验证自己 model 预测复杂 label 的能力是否强于其他 model,只要自己 model 将复杂 label 误判为其它类别比其他 model 误判的少,就可以说明自己 model 预测复杂 label 的能力强于其他 model。

Python代码示例

scikit-learn 准确率的计算方法:sklearn.metrics.accuracy_score(y_true, y_pred)

from sklearn.metrics import accuracy_score
accuracy_score(y_test, y_predict)

scikit-learn 精确率的计算方法:sklearn.metrics.precision_score(y_true, y_pred)

from sklearn.metrics import precision_score
precision_score(y_test, y_predict)

scikit-learn 召回率(灵敏度)的计算方法:sklearn.metrics.recall_score(y_true, y_pred)

from sklearn.metrics import recall_score
recall_score(y_test, y_predict)

scikit-learn F1的计算方法:sklearn.metrics.f1_score(y_true, y_pred)

from sklearn.metrics import f1_score
f1_score(y_test, y_predict)

ROC

曲线由两个变量TPR和FPR组成,这个组合以FPR(横轴)对TPR(纵轴),即是以代价(costs)对收益(benefits)。

详细讲解分类模型评价指标(混淆矩阵)python示例

x轴为假阳性率(FPR):在所有的负样本中,分类器预测错误的比例

详细讲解分类模型评价指标(混淆矩阵)python示例

y轴为真阳性率(TPR):在所有的正样本中,分类器预测正确的比例(等于Recall)

详细讲解分类模型评价指标(混淆矩阵)python示例

由图可得:

  • 当 FPR=0,TPR=0 时,意味着将每一个实例都预测为负例。

  • 当 FPR=1,TPR=1 时,意味着将每一个实例都预测为正例。

  • 当 FPR=0,TPR=1 时,意味着为最优分类器点。

所以一个优秀的分类器对应的ROC曲线应该尽量靠近左上角,越接近45度直线时效果越差。

scikit-learn ROC曲线的计算方法:

sklearn.metrics.roc_curve(y_true, y_score)

AUC

AUC 的全称为 Area Under Curve,意思是曲线下面积,即 ROC 曲线下面积 。通过AUC我们能得到一个准确的数值,用来衡量分类器好坏。AUC图反映的是两个类的重叠程度,AUC的面积反应了分类的好坏。

AUC=1:最佳分类器。

0.5<AUC<1:分类器优于随机猜测。

AUC=0.5:分类器和随机猜测的结果接近。

AUC<0.5:分类器比随机猜测的结果还差。

scikit-learn AUC的计算方法:文章来源地址https://www.toymoban.com/news/detail-457305.html

sklearn.metrics.auc(y_true, y_score)
from matplotlib import pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_curve
from sklearn.metrics import auc
 
model = LogisticRegression()
model.fit(X_train,y_train.ravel())
 
y_score = model.decision_function(X_test)    # model训练好的分类模型
fpr, tpr, _ = roc_curve(y_test, y_score)    # 获得FPR、TPR值
roc_auc = auc(fpr, tpr)    # 计算AUC值
 
plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='navy', linestyle='--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.legend()
plt.show()

到了这里,关于详细讲解分类模型评价指标(混淆矩阵)python示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【目标检测】评价指标:混淆矩阵概念及其计算方法(yolo源码)

    本篇文章首先介绍目标检测任务中的评价指标 混淆矩阵 的概念,然后介绍其在 yolo源码 中的实现方法。 目标检测中的评价指标: mAP概念及其代码实现(yolo源码/pycocotools) 混淆矩阵概念及其代码实现(yolo源码)   在分类任务中, 混淆矩阵(Confusion Matrix) 是一种可视化工具,主

    2024年02月02日
    浏览(34)
  • 图像分类模型评估之用python绘制混淆矩阵confusion_matrix

    目录 训练完成后,生成混淆矩阵!!!! ImageNet数据格式,生成混淆矩阵!!!! 非 ImageNet数据格式,定义导入数据的类名和方法!!!! 非imageNet数据格式,完成生成混淆矩阵程序代码!!!! 混淆矩阵:是用于评估分类模型性能的一种常用工具,可以用于计算分类准确

    2024年02月01日
    浏览(40)
  • 【超详细】机器学习sklearn之分类模型评估 混淆矩阵、ROC曲线、召回率与精度、F1分数

    机器学习之分类模型的评估 学习分类模型评估的方法: 1、混淆矩阵 2、分类结果汇总 3、ROC曲线 4、召回率与精度 5、F1分数 一、评估分类器性能的度量 1、真正(true positive, TP)或f++,对应的是被分类模型正确预测的正样本数。 2、假负(false negative, FN)或f±对应的是被分类模型错

    2023年04月08日
    浏览(78)
  • 深度学习之卷积神经网络中常用模型评估指标(混淆矩阵,精确率,召回率,特异度计算方法)——python代码

    深度学习之卷积神经网络中常用模型评估指标(混淆矩阵,精确率,召回率,特异度计算方法): 混淆矩阵,精确率,召回率,特异度作为卷积神经网络的模型性能评价指标,它们的计算和绘制具有非常重要的意义,特别是在写论文的时候,我们往往需要这些指标来证明我们模

    2024年02月06日
    浏览(46)
  • 分类模型评估(混淆矩阵, precision, recall, f1-score)的原理和Python实现

    当我们已经获取到一个分类模型的预测值,可以通过不同指标来进行评估。 往往衡量二分类模型是基于以下的混淆矩阵概念: True Positive:真实值为正、预测值为正(真阳性) False Positive:真实值为负、预测值为正(假阳性) False Negative:真实值为正、预测值为负(假阴性)

    2024年02月04日
    浏览(38)
  • 【机器学习笔记15】多分类混淆矩阵、F1-score指标详解与代码实现(含数据)

    参考文章 4.4.2分类模型评判指标(一) - 混淆矩阵(Confusion Matrix)_进击的橘子猫的博客-CSDN博客_混淆矩阵 之前在逻辑回归的文章中简单提到过F1-score,但并没有详细对其进行说明和代码实现。这里补一下。 混淆矩阵 (又称 误差矩阵 )是评判模型结果的指标,属于模型评估的

    2023年04月17日
    浏览(32)
  • 分类模型之混淆矩阵(Confusion Matrix)

    混淆矩阵是ROC曲线绘制的基础,同时它也是衡量分类型模型准确度中最基本,最直观,计算最简单的方法。 可以简单理解为:将一个分类模型的预测结果与正确结果做对比,将预测正确的统计量和预测错误的统计量分别写入一张矩阵图中,得到的这张图就是混淆矩阵了。 混

    2024年02月03日
    浏览(34)
  • 分类模型评估:混淆矩阵、准确率、召回率、ROC

    在二分类问题中,混淆矩阵被用来度量模型的准确率。因为在二分类问题中单一样本的预测结果只有Yes or No,即:真或者假两种结果,所以全体样本经二分类模型处理后,处理结果不外乎四种情况,每种情况都有一个专门称谓,如果用一个2行2列表格描述,得到的就是“混淆

    2024年02月06日
    浏览(37)
  • Python计算分类问题的评价指标(准确率、精确度、召回率和F1值,Kappa指标)

    机器学习的分类问题常用评论指标有:准确率、精确度、召回率和F1值,还有kappa指标 。 每次调包去找他们的计算代码很麻烦,所以这里一次性定义一个函数,直接计算所有的评价指标。 每次输入预测值和真实值就可以得到上面的指标值,很方便。 下面是这些指标的计算公

    2024年01月21日
    浏览(37)
  • Python计算语义分割模型的评价指标

    目录 一、混淆矩阵 二、分类指标 1、Accuracy(准确率) 2、Precision(查准率) 3、Recall (查全率) 4、F1-score  三、语义分割的评价指标 1、MPA(类别平均像素准确率) 2、IoU(交并比) 3、MIoU(平均交并比) 4、CPA(类别像素准确率) 5、PA(像素准确率) 四、代码实现(基于混淆矩阵)  混淆

    2024年02月04日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包