python计算分类模型的评价指标

news2024/10/6 16:30:17

目录

1、混淆矩阵

2、代码实现

2.1、OA

2.2、AA 

2.3、kappa

2.4、用户精度(User Accuracy, UA)

2.5、生产者精度(Producer Accuracy, PA)

2.6、f1_score

2.7、混淆矩阵

2.8、分类报告


1、混淆矩阵

以二分类问题为例,混淆矩阵表现形式如下:

  • TP(True Positive,真正例):将真实情况为正例的类型正确地预测为正例
  • FN(False Negative,假反例):将真实情况为正例的类型错误地预测为反例
  • FP(False Positive,假正例):将真实情况为反例的类型错误地预测为正例
  • TN(True Negative,真反例):将真实情况为反例的类型正确地预测为反例

2、代码实现

2.1、OA

  • 总体准确度(OA)—表示总测试样本中正确分类的样本数

import numpy as np
from sklearn.metrics import accuracy_score

y_test = np.array([0,1,1,2,2,0,0,1,2,3,3,2,3,1,0,3,1,2,3,3,2,0,])
y_predict = np.array([1,1,0,2,2,2,0,2,0,3,0,2,3,1,0,2,1,2,1,3,1,3,])

# 也叫准确率
OA = accuracy_score(y_test, y_predict)
print(OA)

2.2、AA 

  • 平均准确度(AA)—表示分类精度的平均值
import numpy as np
from sklearn.metrics import recall_score

y_test = np.array([0,1,1,2,2,0,0,1,2,3,3,2,3,1,0,3,1,2,3,3,2,0,])
y_predict = np.array([1,1,0,2,2,2,0,2,0,3,0,2,3,1,0,2,1,2,1,3,1,3,])

# 当average=None时,计算的是每一个类别的精度。也相当于生产者精度
# 也叫召回率
AA = recall_score(y_test, y_predict,average='macro')
print(AA)

2.3、kappa

  • kappa系数(kappa)提供了关于地面真值图和分类图之间的强一致性的相互信息
import numpy as np
from sklearn.metrics import cohen_kappa_score

y_test = np.array([0,1,1,2,2,0,0,1,2,3,3,2,3,1,0,3,1,2,3,3,2,0,])
y_predict = np.array([1,1,0,2,2,2,0,2,0,3,0,2,3,1,0,2,1,2,1,3,1,3,])

kappa = cohen_kappa_score(y_test, y_predict)
print(kappa)

2.4、用户精度(User Accuracy, UA)

import numpy as np
from sklearn.metrics import precision_score

y_test = np.array([0,1,1,2,2,0,0,1,2,3,3,2,3,1,0,3,1,2,3,3,2,0,])
y_predict = np.array([1,1,0,2,2,2,0,2,0,3,0,2,3,1,0,2,1,2,1,3,1,3,])

# 当average='macro'时,计算的是平均的用户精度(UA)
# 也叫精确率
UA = precision_score(y_test, y_predict,average=None)
print(UA)

2.5、生产者精度(Producer Accuracy, PA)

import numpy as np
from sklearn.metrics import recall_score

y_test = np.array([0,1,1,2,2,0,0,1,2,3,3,2,3,1,0,3,1,2,3,3,2,0,])
y_predict = np.array([1,1,0,2,2,2,0,2,0,3,0,2,3,1,0,2,1,2,1,3,1,3,])

# 当average='macro'时,计算的是平均的生产者精度(PA)。也相当于是每个类别的精度
PA = recall_score(y_test, y_predict,average=None)
print(PA)

2.6、f1_score

import numpy as np
from sklearn.metrics import f1_score

y_test = np.array([0,1,1,2,2,0,0,1,2,3,3,2,3,1,0,3,1,2,3,3,2,0,])
y_predict = np.array([1,1,0,2,2,2,0,2,0,3,0,2,3,1,0,2,1,2,1,3,1,3,])

# 当average=None时,计算的每个类别的f1_score
f1_s = f1_score(y_test, y_predict,average="macro")
print(f1_s)

2.7、混淆矩阵

import numpy as np
from sklearn.metrics import confusion_matrix

y_test = np.array([0,1,1,2,2,0,0,1,2,3,3,2,3,1,0,3,1,2,3,3,2,0,])
y_predict = np.array([1,1,0,2,2,2,0,2,0,3,0,2,3,1,0,2,1,2,1,3,1,3,])

matrix = confusion_matrix(y_test, y_predict)
print(matrix)

2.8、分类报告

import numpy as np
from sklearn.metrics import classification_report

y_test = np.array([0,1,1,2,2,0,0,1,2,3,3,2,3,1,0,3,1,2,3,3,2,0,])
y_predict = np.array([1,1,0,2,2,2,0,2,0,3,0,2,3,1,0,2,1,2,1,3,1,3,])

report = classification_report(y_test, y_predict, digits=4)
print(report)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/512901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux系统下的文件操作

目录 一、文件理解 二、系统级的文件操作 1、打开open 2、关闭close 3、写入write 4、读取read 三、文件描述符 四、重定向 1、dup2函数 2、追加重定向 3、输入重定向 五、缓冲区 1、缓冲区存在的意义 2、缓冲区的刷新策略 一、文件理解 在Linux中,有…

Linux多线程(2)线程安全(同步与互斥)

1.线程安全 概念 在多线程程序中,涉及到了对共享资源的操作,则有可能导致数据的二义性,而线程安全指的是,就算对共享资源进行操作也不会导致数据二义。 总结:多线程中对共享资源的操作不会出现问题。 实现:…

【AUTOSA】

目录 一、概述 二、限制与约束 三、功能描述 3.1 网络通信模式请求的转换 3.2 当前网络通信方式的输出 3.3 外围设备的控制 3.3.1 以太网接口控制器 3.4 多网络 3.5 网络模式状态机 3.5.1 初始化 3.5.2 在亚状态ETHSM_STATE_OFFLINE中的行为 3.5.3 子状态ETHSM_STA…

深入学习MYSQL-数据操纵及视图

前言 本博客中的例子和文字大部分来源于书籍《mysql必会知识》,后续会根据更多的书籍不断完善此笔记。 插入操作 可以这种方式向数据库插入两条数据,mysql和pg都支持这种写法。在实战中我们应该更多的使用这种写法,因为数据库的批量操作会…

TCP之滑动窗口和流量控制

TCP 利用发送字节数和接收字节数,这个二元组的唯一性保证顺序。讨论下保证顺序的具体算法,以及如何在保证顺序的基础上,同时追求更高的吞吐量。——TCP 的滑动窗口算法。 TCP 作为一个传输层协议,最核心的能力是传输。传输需要保证…

前端CSS学习(一)

1、基础认知 CSS概述&#xff1a;CSS:层叠样式表(Cascading style sheets)CSS作用是给页面中的HTML标签设置样式&#xff0c;起到美化修饰网页的作用CSS语法规则&#xff1a;CsS写在style标签中&#xff0c;style标签一般写在head标签里面&#xff0c; title 标签下面<!DOC…

AI类软件项目的应用场景

AI类的APP可以做很多事情&#xff0c;现在在很多业行都有具体的应用&#xff0c;从语音识别、图像识别到智能客服等都是不错的应用方向&#xff0c;在AI项目的时候一定要注意用户隐私&#xff0c;否则可能会带来不少潜在的问题。今天和大家分享一下这方面的内容&#xff0c;希望…

Call for Papers丨第三届GLB@KDD‘23 Workshop

鉴于介绍新数据集和Benchmark研究往往需要不同于常规论文的评审标准&#xff0c;计算机视觉和自然语言处理领域&#xff0c;以及最近的NeurIPS会议&#xff0c;都有专门致力于建立新Benchmark数据集和任务的Conference Track。然而在图机器学习领域&#xff0c;我们还没有类似的…

在 IDEA 中创建 Spring Boot 项目的方式(详细步骤教程)

开发环境 以下是我的开发环境 JDK 1.8Maven 3.6.3IDEA 2019&#xff08;2019 无所畏惧&#xff0c;即使现在已经 2023 年了哈哈哈&#xff09; 使用 Maven 的方式创建 Spring Boot 项目 下面的内容可能会因 IDEA 版本不同&#xff0c;而有些选项不同&#xff0c;但是大同小…

若依定制化改造

若依定制化改造 1 前端1.1 去除开屏加载动画1.2 去除登录时验证码1.3 修改网站标题&#xff08;主要是去除“若依”字样&#xff09; 2 后端2.1 用本地缓存替换Redis&#xff08;未完成&#xff09; 1 前端 1.1 去除开屏加载动画 做法&#xff1a; 效果&#xff1a; 这样子那…

契约锁助力公立医院“电子病历”评级,6大应用场景助力评审过关

2019年以来&#xff0c;公立医院每年绩效考核必须要过“电子病历关”&#xff0c;国家卫健委要求所有三级医院电子病历评级要达到4级以上&#xff0c;二级医院要达到3级以上。《电子病历系统应用水平分级评价管理办法&#xff08;试行&#xff09;及评价标准&#xff08;试行&a…

不可不知的脑网络

前言 人们常说&#xff0c;大脑是人类已知的最复杂的网络。人类大脑由大约1000亿个(1011个)神经元组成&#xff0c;由大约100万亿个(1014个)突触连接&#xff0c;这些神经元在多个空间尺度上进行组织&#xff0c;在多个时间尺度上进行功能交互。这个庞大的系统是我们所有思想、…

Prompt learning 教学[基础篇]:prompt基本原则以及使用场景技巧助力你更好使用chatgpt,得到你想要的答案

Prompt learning 教学[基础篇]&#xff1a;prompt基本原则以及使用场景技巧助力你更好使用chatgpt&#xff0c;得到你想要的答案 如果你想系统学习 如果你对 AI 和 Prompt Engineering 不是很了解&#xff0c;甚至连 ChatGPT 也不是很了解&#xff0c;那我建议你从基础篇开始读…

GPS定位与IP地址定位

在日常生活中&#xff0c;常用的定位技术包括GPS定位、基站定位与IP地址定位​、WIFI定位。 关于GPS定位 GPS(Global Positioning System&#xff0c;全球定位系统)起始于1958年美国军方的一个项目&#xff0c;1964年投入使用。20世纪70年代美国陆海空三军联合研制了新一代卫…

HBase入门 Phoenix使用第三方客户端DataGrip连接 连接包含hbase-site.xml配置(八)

1、因为hbase配置了phoenix HBase入门 Phoenix使用第三方客户端DataGrip连接&#xff08;六&#xff09; <property><name>phoenix.schema.isNamespaceMappingEnabled</name><value>true</value></property><property><name>…

@RequestBody,@RequestParam,@RequestPart应用场景和区别

ReqeustBody 使用此注解接收参数时&#xff0c;适用于请求体格式为 application/json&#xff0c;只能用对象接收 RequestParam 支持application/json&#xff0c;也同样支持multipart/form-data请求 RequestPart RequestPart这个注解用在multipart/form-data表单提交请求的方法…

封装Python脚本:使用钉钉机器人发送消息至钉钉

官方帮助文档&#xff1a;https://open.dingtalk.com/document/robots/custom-robot-access 一、获取自定义机器人webhook 可以通过如下步骤设置钉钉机器人&#xff1a; 首先建立或者进入某个群聊在群聊内部点击“设置>机器人>添加机器人” 添加一个自定义机器人&…

从Facebook到Diem币:社交媒体巨头在加密货币领域的演变

大家都知道Facebook是一个全球知名的社交媒体平台&#xff0c;几乎每个人都在其中与朋友分享照片、发表状态或留言。 然而&#xff0c;随着时间的推移&#xff0c;Facebook不仅仅局限于社交交流&#xff0c;而是逐渐涉足更广阔的领域&#xff0c;其中之一就是加密货币。在本文…

三菱FX5U系列PLC本体自带模拟量输入输出使用方法介绍及示例

三菱FX5U系列PLC本体自带模拟量输入输出使用方法介绍及示例 如下图所示,三菱FX5U本体自带2路模拟量输入和1路模拟量输出,打开CPU左侧的保护盖板即可看到接线端子的位置, 如下图所示,查看手册,可以看到模拟量输入的相关说明: 输入:DC0-10V 软元件:SD6020(通道1)、SD…

杂记(二)2023.5.11

目录 流程图应该如何绘制&#xff1f; coverage 泡鲁达拿铁是什么&#xff1f;泡鲁达英文是什么&#xff1f;什么来历&#xff1f; 为什么我的泡鲁达咖啡会送我一些面包条呢&#xff1f; 介绍一下欧内斯特 梅的《历史的教训》 介绍一下陆奥宗光 介绍一下陆奥宗光的《蹇蹇录…