python计算ROC曲线和面积AUC
ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真正率(也就是灵敏度)(True Positive Rate,TPR)为纵坐标,假正率(1-特效性)(False Positive Rate,FPR)为横坐标绘制的曲线。通过将连续变量设定出多个不同的临界值,从而计算出一系列敏感性和特异性,从而可以绘制ROC曲线。
纵坐标:真正率(True Positive Rate , TPR)或灵敏度(sensitivity)
TPR = TP /(TP + FN) (正样本预测结果数 / 正样本实际数)
横坐标:假正率(False Positive Rate , FPR)
FPR = FP /(FP + TN) (被预测为正的负样本结果数 /负样本实际数)
利用sklearn.metrics.roc_curve可以计算ROC曲线
from sklearn.metrics import roc_curve, aucy_true = [0, 1, 1]
y_score = [0.1, 0.8, 0.7]fpr, tpr, thresholds = roc_curve(y_true, y_score)
print(fpr, tpr, thresholds)
"""
[0. 0. 0. 1.]
[0. 0.5 1. 1. ]
[1.8 0.8 0.7 0.1]
"""
其中y_true是真实标签,y_score是预测概率,fpr是假正率,tpr是真正率,thresholds是阈值(thresholds[0]=max(y_score)+1=1.8)。thresholds是y_score去重复元素后加上1.8所以一共4个元素。
在这个例子中,正样本实际数(TP + FN)=2,负样本实际数(FP + TN)=1
- 当index=0,thresholds[0]=1.8,大于等于1.8的预测为正样本,小于1.8的预测为负样本,此时预测标签为[0,0,0],此时TP=0,FP=0,fpr=0,tpr=0
- 当index=1,thresholds[1]=0.8,大于等于0.8的预测为正样本,小于0.8的预测为负样本,此时预测标签为[0,1,0],此时TP=1,FP=0,fpr=0,tpr=0.5
- 当index=2,thresholds[1]=0.7,大于等于0.7的预测为正样本,小于0.7的预测为负样本,此时预测标签为[0,1,1],此时TP=2,FP=0,fpr=0,tpr=1
- 当index=3,thresholds[1]=0.1,大于等于0.1的预测为正样本,小于0.1的预测为负样本,此时预测标签为[1,1,1],此时TP=2,FP=1,fpr=1,tpr=1
计算出ROC曲线后,可以利用sklearn.metrics.auc计算AUC:
from sklearn.metrics import roc_curve, aucy_true = [0, 1, 1]
y_score = [0.1, 0.8, 0.7]fpr, tpr, thresholds = roc_curve(y_true, y_score)
print(auc(fpr, tpr))
python计算ROC曲线和面积AUC相关推荐
- 机器学习之支持向量机SVM之python实现ROC曲线绘制(二分类和多分类)
目录 一.ROC曲线 二.TP.FP.TN.FN 三. python绘制ROC曲线(二分类) 1.思路 2.关键代码 3.完整代码 四. python绘制ROC曲线(多分类) 五.参考文献 一.ROC ...
- python 绘制ROC曲线
简述 机器学习很多是为测试样本产生一个预测值,然后将这个预测值与阈值进行对比,若大于阈值则分为正类,否则分为反类.这个预测值的好坏,直接决定了学习器泛化能力.根据这个预测值,我们可以对测试样本进行 ...
- ROC曲线及如何计算AUC
AUC的全名是Area Under Curve,就是ROC曲线下的面积.因此,在介绍AUC之前,先介绍下ROC. ROC ROC的全称是"受试者工作特征"(Receiver Op ...
- 基于python绘制ROC曲线
基于python绘制ROC曲线,直接附代码: from sklearn.metrics import roc_curve, auc from sklearn.model_selection impor ...
- Python计算圆的周长面积和球的表面积和体积
Python计算圆的周长面积和球的表面积和体积 import math r=float(input("请输入半径:")) circumference=2*math.pi*r are ...
- python画roc曲线_使用Python画ROC曲线以及AUC值
AUC介绍 AUC (Area Under Curve)是机器学习二分类模型中非常常用的评估指标,相比于 F1-Score 对项目的不平衡有更大的容忍性,目前常见的机器学习库中(比如 scikit-l ...
- R语言实战 input+结果——ROC曲线的绘制 auc 时量下曲线面积
1.数据处理 第一步当然得处理一下数据.默认的Iris数据集有三类鸢尾花,我目前的理解是只有二分类才画的出ROC曲线,所以才去一定的手段处理一下数据: 输入 # 数据准备 iris2 <- ir ...
- python画roc曲线需要什么数据,Python ROC曲线绘制
一.混淆矩阵 分类问题中,不管建模人员使用什么模型都难以到达100%的预测准确率,所以人们普遍使用分类错误率来衡量一个模型的优劣.但是在实际生产过程中分类问题经常存在样本不均衡问题,所以仅仅使用错误率 ...
- python的roc曲线与阈值_ROC曲线-阈值评价标准
ROC曲线指受试者工作特征曲线 / 接收器操作特性曲线(receiver operating characteristic curve), 是反映敏感性和特异性连续变量的综合指标,是用构图法揭示敏感性 ...
- python 画roc曲线
这个直接画: from sklearn import metrics import numpy as np import matplotlib.pyplot as pltplt.figure(0).c ...
最新文章
- R语言gc函数垃圾回收实战
- LNMP安装常见问题集锦(一)
- 【数据结构-排序】4.图解归并排序和基数排序
- Angular Jasmine 里一些常用概念学习笔记 - describe, it, beforeEach的用法
- python数据结构剑指offer-从尾到头打印链表
- 页面校验请求MmEwMD(转载)
- bfs (宽度搜素)
- h5带mysql数据库的留言板_【mysql】用PHP写留言板,有回复功能,要写入数据库。...
- 软件项目管理案例教程 第4版 课后习题答案
- css如何修改行内样式
- 彩灯控制器课程设计vhdl_EDA课程设计彩灯控制器
- 什么是软件测试?软件测试的目的、意义是什么? 软件测试的流程是什么?
- sonic 架构学习
- vite首次打开界面加载慢问题解决
- 哈工程转专业计算机,2021年哈尔滨工程大学大一新生转专业及入学考试相关规定...
- java获取虾米数据_json获取属性值的方式
- VC++QQ群,刚刚建立,欢迎加入,共同进步
- GSMA MWC19巴塞罗那圆满落下帷幕
- ts文件编译与运行,vscode自动编译
- 大数据工资这么高,零基础可以学习吗?
热门文章
- opencv旋转矩形定义以及求交叉面积
- 选择合适的电阻型分压器
- 百度磁盘搜索和git、ssh的试用
- 电线 电流 和 断路器选择
- 目标检测算法——小目标检测相关数据集(附下载链接)
- 电脑图片格式怎么批量转换jpg?几个小妙招轻松转换
- Sass Module 介绍
- 国产计算机存储,全国产化存储AXD嵌入式存储芯片在全国产化计算机适配应用AXD安信达-国内领先的自主可控存储提供商...
- 872. 叶子相似的树 / 剑指 Offer 33. 二叉搜索树的后序遍历序列 / 剑指 Offer 34. 二叉树中和为某一值的路径 / 剑指 Offer 35. 复杂链表的复制
- 显示网站Alexa世界排名的代码