二分类问题中评估模型的示例及释义:召准率、召回率等

1、评估参数定义

1.1、召准率(Precision)

召准率是衡量模型预测正类标签时的准确度的指标。它计算的是模型预测的正类中真正为正类的比例。换句话说,召准率表示在所有预测为正类的实例中,正确识别为正类的实例所占的比例。

Precision=\frac{TP}{TP+FP}

 其中,TP:True positive, FP: False positive。即TP代表正样本中预测正确的数量,FP代表正样本中错误预测的数量。

 1.2、召回率(Recall)

 召回率,也称为敏感度或真正类率,衡量的是模型找到所有正类实例的能力。它计算的是模型预测的正类中真正为正类的实例与数据集中实际正类实例总数的比例。换句话说,召回率表示模型正确识别的实际正类实例所占的比例。

Recall=\frac{TP}{TP+FN}

其中,FN为负样本中预测错误的数量。 

1.3、F1-score

F1分数是召准率和召回率的调和平均数,它提供了一个单一的值来评估模型的性能,平衡了召准率和召回率。它计算的是召准率和召回率的加权平均数,权重是各自值的倒数。F1分数的范围从0到1,其中1是最好的分数,表示既有高召准率又有高召回率。

F1-score=\frac{2*Precision*Recall}{Precision+Recall} 

1.4、灵敏度(Sensitivity or True Positive Rate,TPR)

假设有一个用于疾病检测的机器学习模型,其任务是将患者分为患病(正类)或健康(负类)。灵敏度是衡量模型正确识别患病者的能力。例如,如果模型在100个实际患病的人中正确识别出90个,那么该模型的灵敏度为90%。

1.5、特异度(Specificity or True Negative Rate,TNR)

同样是在上述疾病检测的场景中,特异度是衡量模型正确识别健康人的能力。例如,如果模型在100个实际健康的人中正确识别出95个,那么该模型的特异度为95%。

理想情况下,一个好的分类模型应该同时具有高的灵敏度和特异度,但在实际应用中,这通常是一个权衡的过程。

2、算法示例(基于Keras)

示例是在天然地震数据信号和噪声二分类的程序中使用的,因此使用前三个衡量指标及准确度来做示例


from sklearn.metrics import accuracy_score, precision_score, recall_scoretest_labels = label
predicted_classes = outaccuracy = accuracy_score(test_labels,predicted_classes)
precision = precision_score(test_labels,predicted_classes)
recall = recall_score(test_labels,predicted_classes)
F1_score1 = 2*precision*recall/(precision+recall)
print(f'The accuracy of the model is {accuracy}, the precision is {precision}, the recall is {recall}, and the F1 scorei is {F1_score1}.')

3、效果展示:

4、Keras环境下的混淆矩阵绘制 

from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay C = confusion_matrix(test_labels, predicted_classes)  
print(C)disp = ConfusionMatrixDisplay(confusion_matrix=C, display_labels=['earthquake','noise'])
disp.plot(cmap='YlOrRd', values_format='')
#plt.title(f'Classification CNN Results ({self.epochs} epochs)')
plt.yticks(rotation=90)
plt.tight_layout()
plt.savefig('confusion_matrix_test.png', dpi=600)
plt.show()

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

H5 Canvas 打飞机青春版

没事儿写写练习一下,说不准哪天就用到今天所用到的知识点了呢。 在线链接 https://linyisonger.github.io/H5.Examples/?name./053.%E9%A3%9E%E6%9C%BA%E5%A4%A7%E6%88%98.html 功能清单 循环滚动背景 矩形碰撞 随机生成敌人 飞机左右移动 苹果屏蔽长按 移动端屏…

在CentOS系统下的Tomcat8.5或9安装SSL证书

您可以在CentOS系统下的Tomcat服务器安装SSL证书,实现通过HTTPS安全访问Web服务。本文介绍如何CentOS系统下Tomcat 8.5或9安装SSL证书。 环境准备 操作系统:CentOS 7.6 64位 Web服务器:Tomcat 8.5或9 说明 Tomcat服务器需要提前安装JDK环…

SpringSecurity 用户帐号已被锁定

SpringSecurity 用户帐号已被锁定 01 异常发生场景 当我自定义登录接口时以下是我的UserDetailsService和UserDetails接口的实现类 Service public class UserDetailsServiceImpl implements UserDetailsService {Autowiredprivate MsUserServiceImp msUserServiceImp;Overr…

SeaTunnel扩展Source插件,自定义connector-webservice

代码结构 在seatunnel-connectors-v2中新建connector-webservice模块,可以直接赋值connector-http-base模块,webservice和http的方式比较类似,有些类直接复制了http中的代码。 核心类有WebserviceConfig,WebserviceParameter&am…

WPF Mvvm模式下面如何将事件映射到ViewModel层

前言 平常用惯了Command绑定,都快忘记传统的基于事件编程模式了,但是Commond模式里面有个明显的问题,就是你无法获取到事件源的参数。很多大聪明肯定会说,这还不简单,通过自己写控件,给控件加个自定义属性不就行了,想要啥事件就写啥事件进去,完全自主可控。但是对于写…

列表插槽使用

{label: 是否展示,prop: isShow,solt: true, }<!--自定义列--><template slot-scope"scope" slot"isShow"><div style"color: red;cursor: pointer" focus"getIsShow(scope.row)" ><el-switch v-model"sco…

良品铺子“降价不降质”:利他主义,零食新成长逻辑

最近&#xff0c;男大学生组团穿军大衣&#xff0c;女大学生集体穿花棉袄&#xff0c;火遍全网。 相当一批大学生发现&#xff0c;军大衣、花棉袄在保暖上不输羽绒服&#xff0c;而且价格还便宜。这股风潮背后&#xff0c;其实映射出当下年轻人在消费上变得愈发&#xff1a; …

C# 动态编译代码并执行

写在前面 本文采用动态编译的方式&#xff0c;对目标文件code.txt中的C#代码进行实时编译并调用&#xff1b;当然也可以直接在代码中直接装配或读取已有的代码文本&#xff0c;动态编译可以用于很多需要热更新的场景&#xff0c;实现无需重启程序也能达到更新代码的需求。 代…

算法题--排椅子(贪心)

题目链接 code #include<bits/stdc.h> using namespace std;struct node{int indx;//用来存储数组下标int cnt;//用来计数 };bool cmp(node a,node b){ //判断是否是数字最大的一个就是经过最多谈话人的道return a.cnt>b.cnt; } node row[2010],cow[2010];bool cmp…

MatrixOne Meetup回顾 | 深圳站

11月11日&#xff0c;MatrixOne 社区在深圳成功举办了第二次 MatrixOne Meetup。活动当天&#xff0c;数十位外部小伙伴到场参与&#xff0c;一同分享云原生数据库相关知识内容。此次活动&#xff0c;我们也邀请了来自深圳素问智能的外部讲师&#xff0c;分享了目前火爆的大模型…

什么是死锁?如何产生死锁?死锁的必要条件?怎么解决死锁?

🔒1、什么是死锁 死锁是一个非常让程序猿烦恼的问题,一旦所写的程序有了死锁,那么程序就无法执行下去,会出现严重的 bug,并且死锁非常隐蔽,我们不会轻易发现它,在开发阶段,不经意期间我们就会写出死锁,很难检测出来。 那么什么是死锁呢?竟然让我们如此烦恼。 “死…

为何要隐藏IP地址?网络上哪些行为需要隐藏IP和更换IP?

网络已经成为现代人生活的重要组成部分&#xff0c;人们在网络上交流、学习、娱乐、购物等。但是&#xff0c;在享受网络带来的便利时&#xff0c;我们也需要时刻保护自己的隐私和安全。其中&#xff0c;IP地址作为网络通信中的重要标识&#xff0c;如何隐藏以及在哪些情况下需…