机器学习|多分类的精确率和召回率

简介: 多分类的精确率和召回率。

 我们常用的精确率和召回率通常都用于二分类的问题上,那么在多分类上应该怎样去使用这些评价指标呢?

多分类的精确率和召回率

既然精确率和召回率的概念以及计算公式都指向二分类问题,那么我们不妨将多分类问题转换为二分类问题来做。

先来看一下精确率和召回率的概念:

    • 精确率是指分类正确的正样本个数占分类器判定为正样本的个数的比例。
    • 召回率是指分类正确的正样本真实正样本的比例。

    根据概念我们知道,在转换为二分类的过程中,我们重点在意的就是怎样去做正样本,其实我们可以把每个类别单独视为“正”,所有的其他类型视为“负”。

    举个例子:

    在进行例子之前,我们先来了解一个概念叫做——混淆矩阵。

    image.png

    对于上面这个表格,我们就可以把它叫做是一个混淆矩阵,在混淆矩阵中,每一行之和表示该类别的真实样本数量,每一列之和表示被预测为该类别的样本数量。

    那么对于这个混淆矩阵我们就可以计算它每一个类别的精确率和召回率:

      • 分类1的精确率(此时把分类1当作正样本,其余为负样本):

      分类正确的正样本=43

      分类器判定为正样本=50

      P=43/50

        • 分类1的召回率:

        分类正确的正样本=43

        真实正样本=45

        R=43/45

          • 分类2的精确率(此时把分类2当作正样本,其余为负样本):

          分类正确的正样本=45

          分类器判定为正样本=50

          P=45/50

            • 分类2的召回率:

            分类正确的正样本=45

            真实正样本=51

            R=45/51

              • 分类3的精确率(此时把分类3当作正样本,其余为负样本):

              分类正确的正样本=49

              分类器判定为正样本=50

              P=4950

                • 分类3的召回率:

                分类正确的正样本=49

                真实正样本=54

                R=49/54

                得到了每个分类对应的P和R值他们的F1 score就可以用下面的式子算得:

                image.png

                用代码实现一下该计算方式:

                M= [
                    [14371, 6500, 9, 0, 0, 2, 316],
                    [5700, 22205, 454, 20, 0, 11, 23],
                    [0, 445, 3115, 71, 0, 11, 0],
                    [0, 0, 160, 112, 0, 0, 0],
                    [0, 888, 39, 2, 0, 0, 0],
                    [0, 486, 1196, 30, 0, 74, 0],
                    [1139, 35, 0, 0, 0, 0, 865]
                ]
                n=len(M)
                foriinrange(n):
                rowsum, colsum=sum(M[i]), sum(M[r][i] forrinrange(n))
                try:
                print ('precision: %s'% (M[i][i]/float(colsum)), 'recall: %s'% (M[i][i]/float(rowsum)))
                exceptZeroDivisionError:
                print ('precision: %s'%0, 'recall: %s'%0)

                image.gif


                相关文章
                |
                1月前
                |
                机器学习/深度学习 人工智能 算法
                【人工智能】机器学习、分类问题和逻辑回归的基本概念、步骤、特点以及多分类问题的处理方法
                机器学习是人工智能的一个核心分支,它专注于开发算法,使计算机系统能够自动地从数据中学习并改进其性能,而无需进行明确的编程。这些算法能够识别数据中的模式,并利用这些模式来做出预测或决策。机器学习的主要应用领域包括自然语言处理、计算机视觉、推荐系统、金融预测、医疗诊断等。
                38 1
                |
                1月前
                |
                机器学习/深度学习 算法
                【机器学习】简单解释贝叶斯公式和朴素贝叶斯分类?(面试回答)
                简要解释了贝叶斯公式及其在朴素贝叶斯分类算法中的应用,包括算法的基本原理和步骤。
                54 1
                |
                1月前
                |
                机器学习/深度学习
                如何用贝叶斯方法来解决机器学习中的分类问题?
                如何用贝叶斯方法来解决机器学习中的分类问题?
                |
                1月前
                |
                机器学习/深度学习
                【机器学习】准确率、精确率、召回率、误报率、漏报率概念及公式
                机器学习评估指标中的准确率、精确率、召回率、误报率和漏报率等概念,并给出了这些指标的计算公式。
                163 0
                |
                1月前
                |
                机器学习/深度学习 数据采集 自然语言处理
                【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案–4 机器学习LGB 方案
                在讯飞英文学术论文分类挑战赛中使用LightGBM模型进行文本分类的方案,包括数据预处理、特征提取、模型训练及多折交叉验证等步骤,并提供了相关的代码实现。
                28 0
                |
                2月前
                |
                机器学习/深度学习 Serverless Python
                `sklearn.metrics`是scikit-learn库中用于评估机器学习模型性能的模块。它提供了多种评估指标,如准确率、精确率、召回率、F1分数、混淆矩阵等。这些指标可以帮助我们了解模型的性能,以便进行模型选择和调优。
                `sklearn.metrics`是scikit-learn库中用于评估机器学习模型性能的模块。它提供了多种评估指标,如准确率、精确率、召回率、F1分数、混淆矩阵等。这些指标可以帮助我们了解模型的性能,以便进行模型选择和调优。
                |
                2月前
                |
                机器学习/深度学习 Java
                机器学习中的召回率与准确率详解
                机器学习中的召回率与准确率详解
                |
                3月前
                |
                机器学习/深度学习 分布式计算 算法
                在机器学习项目中,选择算法涉及问题类型识别(如回归、分类、聚类、强化学习)
                【6月更文挑战第28天】在机器学习项目中,选择算法涉及问题类型识别(如回归、分类、聚类、强化学习)、数据规模与特性(大数据可能适合分布式算法或深度学习)、性能需求(准确性、速度、可解释性)、资源限制(计算与内存)、领域知识应用以及实验验证(交叉验证、模型比较)。迭代过程包括数据探索、模型构建、评估和优化,结合业务需求进行决策。
                49 0
                |
                3月前
                |
                机器学习/深度学习 数据采集 自然语言处理
                【机器学习】逻辑回归:智能垃圾邮件分类实例
                【机器学习】逻辑回归:智能垃圾邮件分类实例
                133 0
                |
                3月前
                |
                机器学习/深度学习 算法 数据挖掘
                【机器学习】Voting集成学习算法:分类任务中的新利器
                【机器学习】Voting集成学习算法:分类任务中的新利器
                90 0