sklearn评估指标Classification metrics常用指标详解及小坑
sklearn评估指标Classification metrics常用指标详解及小坑
计算评估指标需要用到预测结果和真实标签,首先说一下获得预测结果的model.predict()和model.predict_proba()的区别:
- model.predict():得到的是预测的类别。如果是二分类,就是0或1.
- model.predict_proba():得到的是预测类别的概率,是一个多维数组。如果是二分类,则第一列表示预测为0的概率,第二列表示预测为1的类别。如果你想获得预测为1的概率就直接取第2列:
y_score = model.predict_proba(x_test)[:, 1]
下边开始讲解计算指标容易掉的坑
- 混淆矩阵
from sklearn.metrics import confusion_matrix
metrics_out=confusion_matrix(y_true, y_pred) # 可以指定label
注意:y_true为真实类别,y_pred为预测的类别
- accuracy、precision、recall
from sklearn.metrics import accuracy_score,precision_score,recall_score
acc = accuracy_score(y_true, y_pred)
pre = precision_score(y_true, y_pred, average='macro')
recall = recall_score(y_true, y_pred, average='macro')
# average可以自己指定:‘micro’, ‘macro’, ‘samples’, ‘weighted’, ‘binary’,默认default=’binary’
注意:y_true为真实类别,y_pred为预测的类别
- roc曲线
from sklearn.metrics import roc_curve
fpr, tpr, thresholds = roc_curve(y_true, y_scores)
plt.figure()
plt.plot([0, 1], [0, 1], 'k--')
plt.plot(fpr, tpr, label='Roc(AUC = {0:.3F})'.format(AUC), lw=2)
plt.xlabel('False positive rate')
plt.ylabel('True positive rate')
plt.title('ROC curve')
plt.legend(loc='best')
plt.show()
注意:y_true为真实类别,y_scores为预测的概率
- auc
可以使用roc_auc_score()与auc()两种方式:
roc_auc_score()方式:
from sklearn.metrics import roc_auc_score
AUC = roc_auc_score(y_test, y_score_mean)
注意:roc_auc_score适用于二分类。y_test为真实类别,y_score_mean为预测的概率
auc()方式:由于auc()的输入为假阳性率fpr和真阳性率tpr,所以需要首先通过混淆矩阵计算出这两个值
from sklearn.metrics import roc_curve, auc
fpr, tpr, thresholds = roc_curve(y_true, y_scores)
AUC = auc(fpr, tpr)
注意:y_true为真实类别,y_scores为预测的概率
- Sensitivity敏感度、Specificity特异性
对于二分类:
Sensitivity = TP/(TP+FN),衡量所有真实为正例的样本中有多少被预测为正例。
Specificity = TN/(FP+TN),衡量所有真实为负例的样本中有多少被预测为负例。
from sklearn.metrics import confusion_matrix
metrics_out=confusion_matrix(y_true, y_pred)
Sensitivity = metrics_out[0][0] / (metrics_out[0][0] + metrics_out[0][1])
Specificity = metrics_out[1][1] / (metrics_out[1][0] + metrics_out[1][1])
Sensitivity=recall。
sklearn评估指标Classification metrics常用指标详解及小坑相关推荐
- python对输入的字符串进行解析_python数据类型_字符串常用操作(详解)
这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...
- python加密字符串小写字母循环后错两位_python数据类型_字符串常用操作(详解)
这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...
- c语言 append,对C++ string append方法的常用用法详解
C++ string append()添加文本 使用append()添加文本常用方法: 直接添加另一个完整的字符串: 如str1.append(str2); 添加另一个字符串的某一段子串: 如str1 ...
- 回归分析评估指标均方对数误差(MSLE)详解及其意义:Mean Squared Log Error
回归分析评估指标均方对数误差(MSLE)详解及其意义:Mean Squared Log Error 目录 回归分析评估指标均方对数误差(MSLE)详解及其意义:Mean Squared Log Err ...
- 1. 批处理常用符号详解:
1. 批处理常用符号详解: -------------------------------------------- 1.@ 一般在它之后紧跟一条命令或一条语句,则此命令或语句本身在执行的时候不会显示 ...
- 手把手教你Nginx常用模块详解之ngx_http_rewrite_module(十)
本专栏非常感谢大家得关注和支持,本人开源项目站点https://erosbt.com 将自己热爱与信仰的技术,持续不辍地传递. Nginx专栏 手把手教你Nginx常用模块详解之ngx_http_ac ...
- docker常用命令详解
docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...
- Samtools(CentOS Linux)安装及常用命令详解
序列比对(将测序reads与已知序列信息的基因或基因组进行比对)是高通量测序数据分析中最重要的一环,无论是转录组还是重测序都是基于比对结果来进行后续各项分析的,比对结果格式比较常见的是sam和bam文 ...
- router linux命令,router os 常用命令详解
router os 常用命令详解 发布时间:2006-04-20 01:17:30来源:红联作者:[Hl.y] 看了很多router os 的资料都是关于如何安装的,却很少见到关于router os的 ...
最新文章
- Visual与IMU多传感器融合的定位方案
- NB-IoT,你真是太让我失望了
- matlab在线性系统理论中的应用,线性系统理论相关的matlab应用.ppt
- PMP-【第6章 项目进度管理】-2021-2-11(136页-160页)
- 做shopee找代运营,如何判断一家代运营公司是否靠谱?
- python 计时器 timeit 报错:ValueError: stmt is neither a string nor callable
- 转机器学习系列(9)_机器学习算法一览(附Python和R代码)
- php年月日滚动选择,Unity3d—做一个年月日选择器(Scroll Rect拖动效果优化)— 无限滚动 + 锁定元素...
- python添加模块
- opencv 学习第一课 图像读取、显示、写入 代码注释版 保证你每一行都能读懂
- C# 每天温习一点(IEnumerableTSource)
- 读书笔记-01大型网站架构演化的价值观
- 台达伺服控制器接线图_【工控项目分享】台达ASDA-AB系列伺服驱动器——内部位置控制...
- win10删除自定义的背景图片历史记录
- 硬核讲习,10名“悟道”核心成员,剖析大模型
- 杨诚 湖南科技职业技术学院计算机,2013年全国职业院校技能大赛高职组获奖名单...
- 我想加入阿里,我该怎么做
- bitbucket创建团队
- 分析智联招聘的API接口,进行数据爬取
- 什么是语言类型的强弱?
热门文章
- 文件上传与下载(使用apache)
- 设计模式-策略模式(Go语言描述)
- matlab加速迭代法方程求根,【源码】迭代法求根的matlab算法
- ShaderJoy —— 漫画 sketch 效果【GLSL】
- 二分法求方程根matlab,matlab用二分法求方程 的正根,要求误差小于0.0005
- 【系】微信小程序云开发实战坚果商城-云开发之商品信息和主题商品数据实现
- 向《大鱼海棠》说声抱歉
- android 网易新闻 登录界面,Android实现网易新闻客户端首页效果
- 温度报警程序c语言设计,51单片机课程设计:基于DS18B20的温度报警器
- orin环境配置问题记录