分类模型常用评价指标——混淆矩阵和roc曲线

2024-04-12 09:18

本文主要是介绍分类模型常用评价指标——混淆矩阵和roc曲线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

混淆矩阵

在这里插入图片描述

定量精度
  • 总体分类精度(Overall Accuracy)
    分类正确的样本数/总样本数
    OA=(e+f+g)/(a+b+c+d+e+f+g+h+i)
  • Kappa系数
    P0=OA
    Pe=∑(真实样本数×分类样本数)/样本总数2
    例如:Pe=[(a+b+c)×(a+d+g)+(b+e+h)×(d+e+f)+(g+h+i)×(c+f+i)] /(a+b+c+d+e+f+g+h+i)2
    Kappa=(P0-Pe )/(1-Pe)
  • 用户精度(User accuracy )
    从预测的角度出发,预测正确的样本占该类别总的预测样本数
    • 类别1user_accuracy=a/(a+d+g)
    • 类别2user_accuracy=e/(b+e+h)
    • 类别3user_accuracy=i/(c+f+i)
  • 生产者精度(Producer accuracy)
    用样本的角度出发,被正确预测的样本数占该类别的样本总数
    • 类别1Prod.accuracy=a/(a+b+c)
    • 类别2Prod.accuracy=e/(d+e+f)
    • 类别3Prod.accuracy=i/(g+h+i)
ROC曲线

roc曲线主要用来评估二分类模型的精度
在这里插入图片描述
a:TP(真阳性)
c:FP(假阳性)
b:FN(假阳性)
d:TN(真阴性)

  • 真检率(灵敏度,击中率)
    TPR=a/(a+b)
  • 误检率(特异度,虚惊率)
    FPR=c/(c+d)

ROC曲线的坐标横轴是FPR,坐标纵轴是TPR,ROC曲线描述的不是FPR与TPR间的函数关系
在这里插入图片描述

ROC曲线描述的不是FPR与TPR间的函数关系,FPR与TPR间没有函数关系,FPR与TPR是阈值τ的函数,τ描述的是样本中被检测为阳性的比率,当τ=0时,所有样本被识别为阴性,此时FPR(特异度、虚惊率、误检率)为0(FPR越小越好),但TPR(灵敏度、命中率、真检率)为0(TPR越大越好),当τ=1时所有样本被识别为阳性,此时TPR=1,FPR=1。因此需要选择一个合适的τ值使得TPR越大越好,FPR越小越好。

曲线下面积(Area Under Curve,AUC)
AUC等于roc曲线与坐标横轴围城的面积,是roc曲线的积分,AUC数值越大越好

这篇关于分类模型常用评价指标——混淆矩阵和roc曲线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/896723

相关文章

Python将字符串转换为小写字母的几种常用方法

《Python将字符串转换为小写字母的几种常用方法》:本文主要介绍Python中将字符串大写字母转小写的四种方法:lower()方法简洁高效,手动ASCII转换灵活可控,str.translate... 目录一、使用内置方法 lower()(最简单)二、手动遍历 + ASCII 码转换三、使用 str.tr

Spring Boot 常用注解整理(最全收藏版)

《SpringBoot常用注解整理(最全收藏版)》本文系统整理了常用的Spring/SpringBoot注解,按照功能分类进行介绍,每个注解都会涵盖其含义、提供来源、应用场景以及代码示例,帮助开发... 目录Spring & Spring Boot 常用注解整理一、Spring Boot 核心注解二、Spr

Java中的内部类和常用类用法解读

《Java中的内部类和常用类用法解读》:本文主要介绍Java中的内部类和常用类用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录内部类和常用类内部类成员内部类静态内部类局部内部类匿名内部类常用类Object类包装类String类StringBuffer和Stri

MySQL连接池(Pool)常用方法详解

《MySQL连接池(Pool)常用方法详解》本文详细介绍了MySQL连接池的常用方法,包括创建连接池、核心方法连接对象的方法、连接池管理方法以及事务处理,同时,还提供了最佳实践和性能提示,帮助开发者构... 目录mysql 连接池 (Pool) 常用方法详解1. 创建连接池2. 核心方法2.1 pool.q

Spring Boot 常用注解详解与使用最佳实践建议

《SpringBoot常用注解详解与使用最佳实践建议》:本文主要介绍SpringBoot常用注解详解与使用最佳实践建议,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、核心启动注解1. @SpringBootApplication2. @EnableAutoConfi

SQL常用操作精华之复制表、跨库查询、删除重复数据

《SQL常用操作精华之复制表、跨库查询、删除重复数据》:本文主要介绍SQL常用操作精华之复制表、跨库查询、删除重复数据,这些SQL操作涵盖了数据库开发中最常用的技术点,包括表操作、数据查询、数据管... 目录SQL常用操作精华总结表结构与数据操作高级查询技巧SQL常用操作精华总结表结构与数据操作复制表结

JavaScript时间戳与时间的转化常用方法

《JavaScript时间戳与时间的转化常用方法》在JavaScript中,时间戳(Timestamp)通常指Unix时间戳,即从1970年1月1日00:00:00UTC到某个时间点经过的毫秒数,下面... 目录1. 获取当前时间戳2. 时间戳 → 时间对象3. 时间戳php → 格式化字符串4. 时间字符

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指