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]

下边开始讲解计算指标容易掉的坑

  1. 混淆矩阵
from sklearn.metrics import confusion_matrix
metrics_out=confusion_matrix(y_true, y_pred)  # 可以指定label

注意:y_true为真实类别,y_pred为预测的类别

  1. 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为预测的类别

  1. 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为预测的概率

  1. 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为预测的概率

  1. 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常用指标详解及小坑相关推荐

  1. python对输入的字符串进行解析_python数据类型_字符串常用操作(详解)

    这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...

  2. python加密字符串小写字母循环后错两位_python数据类型_字符串常用操作(详解)

    这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...

  3. c语言 append,对C++ string append方法的常用用法详解

    C++ string append()添加文本 使用append()添加文本常用方法: 直接添加另一个完整的字符串: 如str1.append(str2); 添加另一个字符串的某一段子串: 如str1 ...

  4. 回归分析评估指标均方对数误差(MSLE)详解及其意义:Mean Squared Log Error

    回归分析评估指标均方对数误差(MSLE)详解及其意义:Mean Squared Log Error 目录 回归分析评估指标均方对数误差(MSLE)详解及其意义:Mean Squared Log Err ...

  5. 1. 批处理常用符号详解:

    1. 批处理常用符号详解: -------------------------------------------- 1.@ 一般在它之后紧跟一条命令或一条语句,则此命令或语句本身在执行的时候不会显示 ...

  6. 手把手教你Nginx常用模块详解之ngx_http_rewrite_module(十)

    本专栏非常感谢大家得关注和支持,本人开源项目站点https://erosbt.com 将自己热爱与信仰的技术,持续不辍地传递. Nginx专栏 手把手教你Nginx常用模块详解之ngx_http_ac ...

  7. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  8. Samtools(CentOS Linux)安装及常用命令详解

    序列比对(将测序reads与已知序列信息的基因或基因组进行比对)是高通量测序数据分析中最重要的一环,无论是转录组还是重测序都是基于比对结果来进行后续各项分析的,比对结果格式比较常见的是sam和bam文 ...

  9. router linux命令,router os 常用命令详解

    router os 常用命令详解 发布时间:2006-04-20 01:17:30来源:红联作者:[Hl.y] 看了很多router os 的资料都是关于如何安装的,却很少见到关于router os的 ...

最新文章

  1. Visual与IMU多传感器融合的定位方案
  2. NB-IoT,你真是太让我失望了
  3. matlab在线性系统理论中的应用,线性系统理论相关的matlab应用.ppt
  4. PMP-【第6章 项目进度管理】-2021-2-11(136页-160页)
  5. 做shopee找代运营,如何判断一家代运营公司是否靠谱?
  6. python 计时器 timeit 报错:ValueError: stmt is neither a string nor callable
  7. 转机器学习系列(9)_机器学习算法一览(附Python和R代码)
  8. php年月日滚动选择,Unity3d—做一个年月日选择器(Scroll Rect拖动效果优化)— 无限滚动 + 锁定元素...
  9. python添加模块
  10. opencv 学习第一课 图像读取、显示、写入 代码注释版 保证你每一行都能读懂
  11. C# 每天温习一点(IEnumerableTSource)
  12. 读书笔记-01大型网站架构演化的价值观
  13. 台达伺服控制器接线图_【工控项目分享】台达ASDA-AB系列伺服驱动器——内部位置控制...
  14. win10删除自定义的背景图片历史记录
  15. 硬核讲习,10名“悟道”核心成员,剖析大模型
  16. 杨诚 湖南科技职业技术学院计算机,2013年全国职业院校技能大赛高职组获奖名单...
  17. 我想加入阿里,我该怎么做
  18. bitbucket创建团队
  19. 分析智联招聘的API接口,进行数据爬取
  20. 什么是语言类型的强弱?

热门文章

  1. 文件上传与下载(使用apache)
  2. 设计模式-策略模式(Go语言描述)
  3. matlab加速迭代法方程求根,【源码】迭代法求根的matlab算法
  4. ShaderJoy —— 漫画 sketch 效果【GLSL】
  5. 二分法求方程根matlab,matlab用二分法求方程 的正根,要求误差小于0.0005
  6. 【系】微信小程序云开发实战坚果商城-云开发之商品信息和主题商品数据实现
  7. 向《大鱼海棠》说声抱歉
  8. android 网易新闻 登录界面,Android实现网易新闻客户端首页效果
  9. 温度报警程序c语言设计,51单片机课程设计:基于DS18B20的温度报警器
  10. orin环境配置问题记录