首页 > 其他分享 >如何评估分类任务的模型性能

如何评估分类任务的模型性能

时间:2024-08-11 17:58:14浏览次数:9  
标签:FP 分类 模型 ROC TP TN 曲线 类别 评估

二分类&多分类任务的评估指标对比

多分类任务和二分类任务的评估指标在概念上有一些相似性,但由于多分类任务涉及三个或更多类别,因此在评估方法和指标上存在一些差异:

二分类任务的评估指标:

  • 准确率 (Accuracy): 正确预测的样本数占总样本数的比例。
  • 精确度 (Precision): 预测为正类别中实际为正的比例。
  • 召回率 (Recall)真正类率 (TPR): 所有实际正样本中被正确预测的比例。
  • F1 分数 (F1 Score): 精确度和召回率的调和平均数。
  • ROC 曲线和 AUC: 评估模型在所有可能的分类阈值下的性能。
  • 特异性 (Specificity): 所有实际负样本中被正确预测的比例。
  • 假正类率 (FPR): 所有实际负样本中被错误预测为正的比例。

多分类任务的评估指标:

  • 准确率 (Accuracy): 与二分类相同,正确预测的样本数占总样本数的比例。
  • 混淆矩阵 (Confusion Matrix): 一个表格,用于显示每个类别的预测正确和错误的数量。
  • 精确度 (Precision): 每个类别的预测为该类别的样本中实际为该类别的比例。
  • 召回率 (Recall): 每个类别的实际样本中被正确预测的比例。
  • F1 分数 (F1 Score): 每个类别的精确度和召回率的调和平均数。
  • 宏平均 (Macro-average): 对每个类别的性能指标进行平均,不考虑类别样本数量的权重。
  • 微平均 (Micro-average): 将所有类别的性能指标在样本级别上进行平均,考虑类别样本数量的权重。
  • 加权平均 (Weighted-average): 对每个类别的性能指标进行平均,但每个类别的权重与其样本数量成比例。
  • 多类别ROC曲线: 可以为每个类别绘制ROC曲线,并计算每个类别的AUC。

主要差异:

  • 混淆矩阵:多分类任务需要混淆矩阵来详细查看每个类别的预测准确性,而二分类任务通常只关注四个基本数值:TP、TN、FP、FN。
  • 平均方法:多分类任务需要不同的方法来计算平均性能指标,如宏平均、微平均和加权平均,以考虑类别不平衡的问题。
  • 多类别ROC曲线:虽然ROC曲线主要用于二分类任务,但也可以扩展到多分类任务,通过为每个类别绘制单独的ROC曲线。

在多分类任务中,选择哪种评估指标取决于具体问题的需求和类别的不平衡程度。例如,如果某些类别的样本数量远多于其他类别,使用宏平均或微平均可能会更合适。


二分类

二分类任务中,评估分类模型性能的主要指标包括:

  1. 准确率 (Accuracy):
    Accuracy = T P + T N T P + T N + F P + F N \text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN} Accuracy=TP+TN+FP+FNTP+TN​
    表示模型正确预测的样本数占总样本数的比例。

  2. 精确度 (Precision):
    Precision = T P T P + F P \text{Precision} = \frac{TP}{TP + FP} Precision=TP+FPTP​
    表示模型预测为正类别中实际为正类别的比例。

  3. 召回率 (Recall) 或 真正类率 (True Positive Rate, TPR):
    Recall = T P T P + F N \text{Recall} = \frac{TP}{TP + FN} Recall=TP+FNTP​
    表示所有实际正类别中被模型正确识别的比例。

  4. F1 分数 (F1 Score):
    F 1 = 2 × Precision × Recall Precision + Recall F1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} F1=2×Precision+RecallPrecision×Recall​
    是精确度和召回率的调和平均数,用于在两者之间取得平衡。

  5. 特异性 (Specificity) 或 真负类率 (True Negative Rate, TNR):
    Specificity = T N T N + F P \text{Specificity} = \frac{TN}{TN + FP} Specificity=TN+FPTN​
    表示所有实际负类别中被模型正确识别的比例。

  6. 假正类率 (False Positive Rate, FPR):
    FPR = F P T N + F P \text{FPR} = \frac{FP}{TN + FP} FPR=TN+FPFP​
    表示所有实际负类别中被错误分类为正类别的比例。

  7. 假负类率 (False Negative Rate, FNR):
    FNR = F N T P + F N \text{FNR} = \frac{FN}{TP + FN} FNR=TP+FNFN​
    表示所有实际正类别中被错误分类为负类别的比例。

  8. 受试者工作特征曲线(Receiver Operating Characteristic,ROC)
    参考博客:
    小白也能看懂的 ROC 曲线详解
    什么是ROC曲线?为什么要使用ROC?以及 AUC的计算

    1. 什么是ROC曲线
      纵轴为TPR T P P \frac{TP}{P} PTP​,横轴为FPR F P P \frac{FP}{P} PFP​
    2. 绘制ROC曲线(确定阈值对于模型输出的概率或分数,选择一系列不同的阈值、计算TPR&FPR、绘制曲线)
    3. ROC曲线的特点
      • ROC曲线下方的面积(AUC,Area Under the ROC Curve)是一个重要的性能指标,它提供了模型整体性能的单一数值表示。AUC值越高,模型的分类性能通常被认为越好。
      • 当模型的预测结果完全随机时,ROC曲线将接近于从左下角到右上角的对角线,AUC值接近0.5。
      • ROC曲线对于评估模型在不同阈值下的性能非常有用,特别是在选择最佳阈值时。
  9. ROC 曲线下面积 (Area Under the ROC Curve, AUC):
    表示模型在所有可能的分类阈值上的性能,AUC 值越高,模型性能越好。

  10. PR曲线

    1. 什么是PR曲线?
      纵轴为Precision T P T P + F P \frac{TP}{TP+FP} TP+FPTP​,横轴为Recall T P T P + F N \frac{TP}{TP+FN} TP+FNTP​
    2. 如何绘制(确定阈值、计算Precision&Recall、绘制曲线)
    3. PR曲线的特点
      • PR曲线通常用于评估模型在正类别样本较少时的性能,因为它不像ROC曲线那样对所有类别的样本数量敏感。
      • 当数据集是不平衡的,即一个类别的样本数量远多于另一个类别时,PR曲线可以提供比ROC曲线更准确的性能评估。
      • PR曲线下面积(AUPR)是一个常用的评估指标,它提供了模型整体性能的单一数值表示,AUPR越高,模型性能越好。
  11. PR 曲线下面积 (Area Under the Precision-Recall Curve, AUPR):
    对于不平衡的数据集,PR 曲线和 AUPR 是评估模型性能的有用指标。

  12. Matthews 相关系数 (Matthews Correlation Coefficient, MCC):
    MCC = T P × T N − F P × F N ( T P + F P ) ( T P + F N ) ( T N + F P ) ( T N + F N ) \text{MCC} = \frac{TP \times TN - FP \times FN}{\sqrt{(TP + FP)(TP + FN)(TN + FP)(TN + FN)}} MCC=(TP+FP)(TP+FN)(TN+FP)(TN+FN) ​TP×TN−FP×FN​
    综合考虑了真正例、假正例、真负例和假负例,取值范围从 -1 到 +1,+1 表示完美分类,0 表示随机分类。

这些指标可以帮助我们从不同角度评估模型的性能,选择最适合特定任务和数据集的模型。在实际应用中,根据问题的具体需求,可能会更关注某些指标。例如,在医疗诊断中,人们可能更倾向于使用高召回率的模型以避免漏诊,即使这可能会牺牲一些精确度。


多分类任务

宏平均 (Macro-average)
计算每个类别的性能指标的简单平均值,不考虑类别的样本数量。
微平均 (Micro-average)
将所有类别的性能指标在样本级别上进行平均,考虑类别的样本数量。
加权平均 (Weighted-average)
计算每个类别的性能指标的平均值,但每个类别的权重与其在数据集中的样本数量成比例。

标签:FP,分类,模型,ROC,TP,TN,曲线,类别,评估
From: https://blog.csdn.net/weixin_52318459/article/details/141105989

相关文章

  • 大模型agent开发之prompt提示词模板
    提示词工程的建模在大模型对话agent的开发中有着重要的地位,好的提示词模板可以辅助大模型做出更加准确的预测,得到更加准确的答案。本文使用langchain进行agnent开发,langchain中封装了很多工具和方法其中就包括不同的prompt模板,接下来本文将详细介绍几种不同风格的prompt模板的使用......
  • 7-3FM模型
    FM算法全称为因子分解机(FactorizationMachine)。它是广告和推荐领域非常著名的算法,在线性回归模型上考虑了特征的二阶交互。适合捕捉大规模稀疏特征(类别特征)当中的特征交互。FM及其衍生的一些较有名的算法的简要介绍如下:FM(FactorizationMachine):在LR基础上用隐向量点......
  • (2-2)多模态模型与框架:多模态模型
    2.2 多模态模型多模态模型是一类能够处理和融合来自不同模态(如文本、图像、音频等)数据的机器学习模型,它们通过联合学习不同模态的特征,实现更丰富和准确的理解和生成任务。多模态模型在诸如视觉问答(VQA)、图文生成和跨模态检索等应用中表现出色,它们能够同时理解和关联图像和文......
  • (2-3)多模态模型与框架:预训练模型
    2.3 预训练模型预训练模型是通过在大规模未标记数据上进行学习而生成的模型,它们能够捕捉数据中的统计特性和语义信息。这些模型通常在通用任务上进行预训练,如语言模型的掩码语言建模或图像模型的自监督学习,然后在特定任务上进行微调,以提高性能和泛化能力。例如本章前面介绍......
  • 基于腾讯云高性能应用服务 HAI 搭建并使用 AI 模型 StableDiffusion 进行文生图
    基于腾讯云高性能应用服务HAI搭建并使用AI模型StableDiffusion进行文生图HAI是什么高性能应用服务HAI与传统GPU云服务器区别使用高性能应用服务HAI一键部署StableDiffusionAIGC创建高性能应用服务启动HAI实例进行文生图快速构建StableDiffusion文生......
  • 【Redis进阶】Redis单线程模型和多线程模型
    目录单线程为什么Redis是单线程处文件事件理器的结构文件处理器的工作流程总结文件事件处理器连接应答处理器命令请求处理器命令回复处理器多线程为什么引入多线程多线程架构多线程执行流程关于Redis的问题Redis为什么采用单线程模型Redis为什么要引入多线程呢......
  • LLaMA-Factory微调llama3之模型的合并,并采用llama.cpp量化成ollama支持的gguf格式模型
    上期我们已经成功的训练了模型,让llama3中文聊天版知道了自己的名字这次我们从合并模型开始,然后使用llama.cpp量化成gguf格式,并且调用api(1)前期准备上期链接: 基于LLaMA-Factory微调llama3成为一个角色扮演大模型,保姆级教学零基础,导出GGUF格式前篇-CSDN博客 首先根据上期......
  • AI大模型开发——3.深度学习基础(2)
    8.损失函数        损失函数( Loss Functions), 也称为代价函数, 是用于评估模型预测值与真实值之间差异的函数。在神经网络训练过程中,损失函数用于指导模型参数的更新方向和幅度, 以使模型预测的结果尽可能接近真实值。        常见的损失函数有以下两个......
  • AI大模型开发——2.深度学习基础(1)
        学习大模型开发之前,我们需要有足够的储备知识,类似于基础的python语法相信大家也都是十分熟悉了。所以笔者也是考虑了几天决定先给大家补充一些深度学习知识。    首先问大家一个问题,学习大模型之前为什么要先学习深度学习知识呢?    首先,深度学习......
  • OpenCV的级联分类器训练
    使用增强级联的弱分类器包括两个主要阶段:训练和检测阶段。对象检测教程中有描述使用基于HAAR或LBP模型的检测阶段。这里主要介绍训练增强分类器级联所需的功能,包括:准备训练数据、执行实际模型训练、可视化训练。目录一、训练数据准备1、负样本2、正样本3、命令行参数......