ML分类模型的评估量 —— 混淆矩阵、查准率、查全率、正确率、F1值

这篇具有很好参考价值的文章主要介绍了ML分类模型的评估量 —— 混淆矩阵、查准率、查全率、正确率、F1值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ML分类模型的评估量 —— 混淆矩阵、查准率、查全率、正确率、F1值

Some Metrics suitable for machine learning classification model - Confusion Matrix, Precision Score, Recall Score and F1 Score.

概要

本文意在介绍,监督学习(Supervised Learning)中,几个常被用于评估分类模型指标(model metric),并讨论它们在二分类模型和多分类模型中的具体计算方法。
ML分类模型的评估量 —— 混淆矩阵、查准率、查全率、正确率、F1值,分类,矩阵,机器学习

图 1

1. 混淆矩阵(Confusion Matrix)

混淆矩阵(Confusion Matrix)是一个 n*n 的方阵,n的值等于数据集类别的数量。

二分类模型的混淆矩阵

如图 2 所示,该 2*2 方阵是一个典型的二分类模型的混淆矩阵,该模型中只有 positive 和 negative 两个类别(标签):

ML分类模型的评估量 —— 混淆矩阵、查准率、查全率、正确率、F1值,分类,矩阵,机器学习

图 2 - 二分类模型的混淆矩阵

TP (True Positive)表示真实值为Positive,模型的预测值为Positive的数据样本数量;

FP (False Positive)表示真实值为Negative,模型的预测值为Positive的数据样本数量;

FN (False Negative)表示真实值为Positive,模型的预测值为Negative的数据样本数量;

TN (True Negative)表示真实值为Negative,模型的预测值为Negative的数据样本数量;

此处的 [True/False Positive/Negative]可以这样理解:“主语” Positive/Negative 描述了模型的预测值,而“形容词” True/False 描述的是预测值与真实值是否一致,一致为True,否则为False。

此外,从【图2】中我们不能发现,混淆矩阵的列(column)表示数据被模型预测的类别(prediction label);混淆矩阵的行(row)表示数据的真实类别(true label)。以及,混淆矩阵每一列的总和表示数据中被模型预测为该类的样本数量;混淆矩阵每一行的总和表示数据中真实标签为该类的样本数量。

多分类模型的混淆矩阵

上方【图2】是二分类模型的混淆矩阵,下方【图3】将混淆矩阵推广到多分类模型:

ML分类模型的评估量 —— 混淆矩阵、查准率、查全率、正确率、F1值,分类,矩阵,机器学习

图 3 - 多分类模型的混淆矩阵

【图3】为一个n*n的混淆矩阵,该混淆矩阵包含了n个类别(标签),label_1、label_2、… 、label_n ,其中标黄的位置表示被正确分类的样本数量,相当于【图2】中的TP和TN。

2. 查准率(Precision Score)又称 “准确率”

查准率(Precision)描述的模型预测的结果中有多少比例的样本是被正确预测的。

对于二分类模型,一般采用Positive(+)的查准率作为整个模型的评估量:

P + = T P T P + F P P_{+} = \frac{TP}{TP + FP} P+=TP+FPTP

宏查准率 & 微查准率

类似的,将查准率推广到多分类模型。

首先,每个label都有对应的查准率:

P l a b e l _ k = C k k ∑ 1 ≤ i ≤ n ;    j = k C i j , ( 1 ≤ k ≤ n ) P_{label\_k} = \frac{C_{kk}}{\sum_{1 \leq i \leq n; \;j = k} C_{ij}}, \quad(1 \leq k \leq n) Plabel_k=1in;j=kCijCkk,(1kn)
其次,存在两种适用于整个模型的查准率评估量,它们分别是下方【式3】描述的宏查准率(macro precision)和下方【式4】描述的微查准率(micro precision)

宏查准率,先计算出混淆矩阵中个类别的查准率,然后计算均值。

P m a c r o = 1 n ∑ 1 ≤ k ≤ n P l a b e l _ k P_{macro} = \frac{1}{n} \sum_{1 \leq k \leq n} P_{label\_k} Pmacro=n11knPlabel_k

微查准率,先对混淆矩阵的“对角线元素”和“元素的和”计算均值,然后在计算查准率。

P m i c r o = 1 n ∑ 1 ≤ k ≤ n C k k 1 n ∑ 1 ≤ k ≤ n ( ∑ 1 ≤ i ≤ n ;    j = k C i j ) P_{micro} = \frac{\frac{1}{n} \sum_{1 \leq k \leq n} C_{kk}}{\frac{1}{n} \sum_{1 \leq k \leq n} (\sum_{1 \leq i \leq n; \;j = k} C_{ij}) } Pmicro=n11kn(1in;j=kCij)n11knCkk

相比之下,当不同类别间的样本数量不平衡时,微查准率可以涵盖样本数量不均的信息;对于宏查准率而言,每个类别的查准率对整个模型的查准率的贡献量是相同的,所以它无法体现不同类别间样本数量不均的信息

3. 查全率(Recall Score)又称 “召回率”

查全率(Recall)描述的是数据集中有多少比例的样本被模型正确预测。

对于二分类模型,一般采用Positive(+)的查全率作为整个模型的评估量:

R + = T P T P + F N R_{+} = \frac{TP}{TP + FN} R+=TP+FNTP

宏查全率 & 微查全率

类似的,将查全率推广到多分类模型。

首先,每个label都有对应的查准率:

R l a b e l _ k = C k k ∑ i = k ;    1 ≤ j ≤ n C i j , ( 1 ≤ k ≤ n ) R_{label\_k} = \frac{C_{kk}}{\sum_{i = k; \;1 \leq j \leq n} C_{ij}}, \quad(1 \leq k \leq n) Rlabel_k=i=k;1jnCijCkk,(1kn)
其次,同样存在两种适用于整个模型的查全率评估量,它们分别是下方【式7】描述的宏查全率(macro recall)和下方【式8】描述的微查全率(micro recall)

宏查全率,先计算出混淆矩阵中个类别的查准率,然后计算均值。

R m a c r o = 1 n ∑ 1 ≤ k ≤ n R l a b e l _ k R_{macro} = \frac{1}{n} \sum_{1 \leq k \leq n} R_{label\_k} Rmacro=n11knRlabel_k

微查全率,先对混淆矩阵的对“角线元素”和“元素的和”计算均值,然后在计算查准率。

R m i c r o = 1 n ∑ 1 ≤ k ≤ n C k k 1 n ∑ 1 ≤ k ≤ n ( ∑ i = k ;    1 ≤ j ≤ n C i j ) R_{micro} = \frac{\frac{1}{n} \sum_{1 \leq k \leq n} C_{kk}}{\frac{1}{n} \sum_{1 \leq k \leq n} (\sum_{i = k; \;1 \leq j \leq n} C_{ij}) } Rmicro=n11kn(i=k;1jnCij)n11knCkk

与宏/微查准率同理,微查全率可以涵盖样本数量不均的信息;宏查全率无法体现不同类别间样本数量不均的信息。

4. 正确率(Accuracy Score)

正确率(Accuracy)描述的整个数据集中被正确预测的比例,它的数学表达式如下:

A = T P + T N T P + T N + F P + F N A = \frac{TP + TN}{TP + TN + FP + FN} A=TP+TN+FP+FNTP+TN

A = ∑ 1 ≤ k ≤ n C k k ∑ 1 ≤ i ≤ n ;    1 ≤ j ≤ n C i j A = \frac{\sum_{1 \leq k \leq n} C_{kk}} {\sum_{1 \leq i \leq n; \; 1 \leq j \leq n} C{ij}} A=1in;1jnCij1knCkk

【式9】对应二分类模型的混淆矩阵,【式10】对应多分类模型的混淆矩阵

5. F1值

查准率(Precision)和差全率(Recall)往往是一对矛盾的度量。一般来说,查准率较高时,查全率会较低,而查全率较高时,查准率较低。

我们可以采用一种较为极端的想法来理解这一现象,当模型将数据集中的所有样本都预测为某一特定类别时,该类别的查准率最高(等于1),同时该类别的查全率最低(因为存在大量样本被错误预测)。

为此,常采用F1值来作为模型的评估量,这是一个结合了查准率(Precision)和查全率(Recall)的量:

F 1 m a c r o = 2 × P m a c r o × R m a c r o P m a c r o + R m a c r o F1_{macro} = \frac{2 \times P_{macro} \times R_{macro}}{P_{macro} + R_{macro}} F1macro=Pmacro+Rmacro2×Pmacro×Rmacro

F 1 m i c r o = 2 × P m i c r o × R m i c r o P m i c r o + R m i c r o F1_{micro} = \frac{2 \times P_{micro} \times R_{micro}}{P_{micro} + R_{micro}} F1micro=Pmicro+Rmicro2×Pmicro×Rmicro

【式11】为宏F1值,【式12】为微F1值。文章来源地址https://www.toymoban.com/news/detail-734112.html

到了这里,关于ML分类模型的评估量 —— 混淆矩阵、查准率、查全率、正确率、F1值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【超详细】机器学习sklearn之分类模型评估 混淆矩阵、ROC曲线、召回率与精度、F1分数

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

    2023年04月08日
    浏览(78)
  • 混淆矩阵、精确率、召回率和F1值:如何评估分类器的性能?

    ❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈 (封面图由文心一格生成) 在机器学习中,分类是一项非常重要的任务。在

    2024年02月02日
    浏览(50)
  • 成为AI产品经理——模型评估(混淆矩阵)

    混淆矩阵有两个定义 positive(正例) 和 negative(反例) 。分别代表模型结果的好和坏。 下图就是一个分类问题的混淆矩阵。横行代表真实的情况,而竖行代表预测的结果。 为了便于理解,我在这里举一个分出瓜的好坏的分类问题。 TP: True Positive,真正例。表示这个瓜实际

    2024年02月03日
    浏览(48)
  • 分类模型之混淆矩阵(Confusion Matrix)

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

    2024年02月03日
    浏览(33)
  • 详细讲解分类模型评价指标(混淆矩阵)python示例

    对于回归模型的评估方法,通常会采用平均绝对误差(MAE)、均方误差(MSE)、平均绝对百分比误差(MAPE)等方法。 对于聚类模型的评估方法,较为常见的一种方法为轮廓系数(Silhouette Coefficient ),该方法从内聚度和分离度两个方面入手,用以评价相同数据基础上不同聚类

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

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

    2024年02月06日
    浏览(45)
  • 【pytorch】使用训练好后的模型权重,在验证集上输出分类的混淆矩阵并保存错误图片

    在机器学习领域,混淆矩阵是一个非常有用的指标,它可以帮助我们更好地理解模型在验证集上的表现。本文介绍了如何使用pytorch框架,利用训练好后的模型权重,在验证集上输出分类的混淆矩阵,并保存错误图片的方法。 首先,我们需要准备一个pytorch框架的模型,并将模

    2024年02月13日
    浏览(27)
  • 【机器学习】分类器性能度量——混淆矩阵及sklearn实现

    记录一下混淆矩阵的学习心得,不写下来老是容易搞混.. 机器学习中,考量二分类问题的分类器性能时,可以将样本的实际类别与分类器预测类别,划分为如下 TN, FP, FN, TP 四种结果,组合起来就是大名鼎鼎的 confusion matrix 混淆矩阵。其中: True,False 表示预测结果与实际分类

    2024年02月10日
    浏览(43)
  • Python遥感图像处理应用篇(二十八):Python绘制遥感图像分类结果混淆矩阵和计算分类精度

    Indians Pines高光谱数据,使用SVM分类方法(选取10%样本量)计算得到的结果。 参考数据: 分类数据:

    2024年02月13日
    浏览(40)
  • 混淆矩阵计算遥感分类精度(总体精度、Kappa系数、用户精度、生产者精度等)

    用户精度 (User’s Accuracy): 假设分类结果的某类别的用户精度为 80%,则用户拿到分类结果后,10个像元中有8个是对的,2个是错的; 生产者精度 (Producer’s Accuracy): 假设分类结果的某类别的生产者精度为 80%,那么如果该类别有10个像素的话,则有2个没有分到该类别(丢失了)。

    2024年04月10日
    浏览(86)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包