roc曲线是机器学习中十分重要的一种学习器评估准则,在sklearn中有完整的实现,api函数为sklearn.metrics.roc_curve(params)函数。

官方接口说明:http://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html

不过这个接口只限于进行二分类任务。!

下面主要是对官方接口做一下翻译。

接口函数   sklearn.metrics.roc_curve(y_truey_scorepos_label=Nonesample_weight=Nonedrop_intermediate=True)

参数说明

    y_true:数组,存储数据的标签,维度就是样本数,形如[0,1,1,0,1...]这样的,也可以是-1和1,只要有两个值

    y_score:数组,存储数据的预测概率值,维度也是样本数,形如[0.38,0.5,0.8]这样的

    pos_label:整型或字符串,当y_true中只有一个值时,比如都是1或者都是0,无法判断哪个是正样本,需要用一个数字或字符串指出

    sample_weight:采样权重,这个官方没有仔细说,是一个可选参数,有待考察

    drop_intermediate:丢掉一些阈值,以便画roc曲线图

返回值:一共三个,分别是fpr,tpr,thresholds

    fpr:数组,随阈值上涨的假阳性率

    tpr:数组,随阈值上涨的真正例率

    thresholds:数组,对预测值排序后的score列表,作为阈值,排序从大到小

举例

    

>>> import numpy as np
>>> from sklearn import metrics
>>> y = np.array([1, 1, 2, 2])
>>> scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2)
>>> fpr
array([ 0. , 0.5, 0.5, 1. ])
>>> tpr
array([ 0.5, 0.5, 1. , 1. ])
>>> thresholds
array([ 0.8 , 0.4 , 0.35, 0.1 ])

解释一下,样本标签为y,共有1和2两个值,预测值为scores,里面是预测为正样本的概率,正样本是什么呢,在函数中通过pos_label指定为2,然后便将score排序,

由大到小,也就有了后面的thresholds,按照这个顺序,依次将前面的样本预测为正样本,后面为负样本,这里看一下样本标签和预测值的一一对应

[1,1,2,2]->[0.1,0.4,0.35,0.8],共有两个正样本,两个负样本

以0.8为阈值,第一个假设为正样本,后面三个假设为负样本,0.8对应的确实为正样本,则真正例率为1/2,假阳性率为0,因为没有负样本被误判为正样本

然后以0.4为阈值,前两个假设为正样本,后两个假设为负样本,0.4对应的为负样本,则真正例数没有增加,于是仍为0.5,而假阳性增加一例,此时假阳性率为1/2

后面的依此类推,这就是这个api的基本使用说明。

补充下:tpr=tp/所有正样本,fpr=fp/所有负样本

sklearn.metrics.roc_curve使用说明的更多相关文章

  1. sklearn.metrics.roc_curve

    官方网址:http://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics 首先认识单词:metrics: ['mɛ ...

  2. sklearn.metrics中的评估方法

    https://www.cnblogs.com/mindy-snail/p/12445973.html 1.confusion_matrix 利用混淆矩阵进行评估 混淆矩阵说白了就是一张表格- 所有正 ...

  3. sklearn.metrics中的评估方法介绍(accuracy_score, recall_score, roc_curve, roc_auc_score, confusion_matrix)

    1 accuracy_score:分类准确率分数是指所有分类正确的百分比.分类准确率这一衡量分类器的标准比较容易理解,但是它不能告诉你响应值的潜在分布,并且它也不能告诉你分类器犯错的类型.常常误导初学 ...

  4. Python Sklearn.metrics 简介及应用示例

    Python Sklearn.metrics 简介及应用示例 利用Python进行各种机器学习算法的实现时,经常会用到sklearn(scikit-learn)这个模块/库. 无论利用机器学习算法进行 ...

  5. [sklearn]性能度量之AUC值(from sklearn.metrics import roc_auc_curve)

    原创博文,转载请注明出处! 1.AUC AUC(Area Under ROC Curve),即ROC曲线下面积. 2.AUC意义 若学习器A的ROC曲线被学习器B的ROC曲线包围,则学习器B的性能优于 ...

  6. sklearn.metrics.mean_absolute_error

    注意多维数组 MAE 的计算方法 * >>> from sklearn.metrics import mean_absolute_error >>> y_true ...

  7. 量化预测质量之分类报告 sklearn.metrics.classification_report

    classification_report的调用为:classification_report(y_true, y_pred, labels=None, target_names=None, samp ...

  8. sklearn 下距离的度量 —— sklearn.metrics

    1. pairwise from sklearm.metrics.pairwise import pairwise_distance 计算一个样本集内部样本之间的距离: D = np.array([n ...

  9. sklearn.metrics import precision_recall_fscore_support

    二分类/多分类/多标签 对于二分类来说,必须定义一些matrics(f1_score,roc_auc_score).在这些case中,缺省只评估正例的label,缺省的正例label被标为1(可以通过 ...

随机推荐

  1. apache http 跳到https

    RewriteEngine OnRewriteCond %{HTTPS} !=onRewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]

  2. LAMP 3.0 mysql配置讲解

    mysql 安装好后,我们是从安装包的 support-files 里面复制过来一个模板配置文件,默认 mysql 配置文件是在/etc/my.cnf 下,其实这个路径或者文件名字我们是可以修改的,在 ...

  3. MXF文件结构浅析

    MXF是英文Material eXchange Format(素材交换格式)的缩语.MXF是SMPTE(美国电影与电视工程师学会)组织定义的一种专业音视频媒体文件格式.MXF主要应用于影视行业媒体制作 ...

  4. 【转】如何使用Java、Servlet创建二维码

    归功于智能手机,QR码逐渐成为主流,它们正变得越来越有用.从候车亭.产品包装.家装卖场.汽车到很多网站,都在自己的网页集成QR码,让人们快速找到它们.随着智能手机的用户量日益增长,二维码的使用正在呈指 ...

  5. dos 下bat命令

    注:cmd下    help > result.txt assoc 显示或修改文件扩展名关联. attrib 显示或更改文件属性. break 设置或清除扩展式 ctrl+c 检查. bcded ...

  6. [poj2398]Toy Storage

    接替关键:和上题类似,输出不同,注意输入这道题需要排序. #include<cstdio> #include<cstring> #include<algorithm> ...

  7. Spring 第一天课程

    一. 面试题部分 1. 什么是IOC?什么是DI?他们有什么区别? 答案: IOC,即控制反转.是指将原来程序中自己创建实现类对象的控制权反转到IOC容器中. IOC的别名:依赖注入(DI),DI 是 ...

  8. 24.Windows任意文件读取漏洞

    漏洞概述: 近日,国外安全研究员SandboxEscaper又一次在推特上公布了新的Windows 0 day漏洞细节及PoC.这是2018年8月开始该研究员公布的第三个windows 0 day漏洞 ...

  9. 友盟让用户数据动起来——给app增加运营

    让用户数据动起来——给app增加运营 一.初识友盟 友盟大家都听说过,在给app集成友盟之前对友盟的认识没有那么深刻.用了友盟之后,才发现友盟很强大. 集成友盟能够获取那些数据呢? 用户的基本信息:比 ...

  10. javax.servlet.ServletConfig接口(五)

    主要作用是保存web.xml文件里面的配置信息 一个servlet对应一个ServletConfig,100个servlet对应100个ServletConfig.   代码如下(单个获取和获取所有) ...