返回顶部
首页 > 资讯 > 后端开发 > Python >Python如何用鸢尾花数据绘制ROC和AUC曲线
  • 558
分享到

Python如何用鸢尾花数据绘制ROC和AUC曲线

2023-07-05 03:07:18 558人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇“python如何用鸢尾花数据绘制ROC和AUC曲线”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何用鸢尾

这篇“python如何用鸢尾花数据绘制ROC和AUC曲线”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何用鸢尾花数据绘制ROC和AUC曲线”文章吧。

一、ROC与AUC

很多学习器是为了测试样本产生的一个实值或概率预测,然后将这个预测值与一个分类阈值(threshold)进行比较,若大于阈值则分为正类,否则为反类。主要看需要建立的模型侧重于想用在测试数据的泛华性能的好坏。排序本身的质量好坏体系了综合考虑学习去在不同任务下的“期望泛化性能”的好坏。ROC曲线则是从这个角度出发来研究学习器泛化性能。

1.ROC

ROC的全称是“受试者工作特征”曲线,与P-R曲线相似。与P-R曲线使用查准率、查全率为纵、横坐标不同,ROC曲线的纵轴是“真正例率”{简称TPR),横轴是“假正例率”(简称FPR)二者分别定义为:

Python如何用鸢尾花数据绘制ROC和AUC曲线

ROC曲线图以真正例率为Y轴,假正例率为X轴。

2.AUC

进行检验判定ROC曲线性能的合理判据是比较ROC曲线下的面积,即AUC。从定义知AUC可通过对ROC曲线下各部分的面积求和而得,AUC可估算为:

Python如何用鸢尾花数据绘制ROC和AUC曲线

从形式化看,AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密联系。因此存在排序损失。

二、代码实现

形式基本和P-R曲线差不多,只是几个数值要改一下。

代码如下(示例):

from sklearn import svm, datasetsfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import roc_curve, aucfrom itertools import cyclefrom sklearn.preprocessing import label_binarize #标签二值化LabelBinarizer,可以把yes和no转化为0和1,或是把incident和nORMal转化为0和1。import numpy as npfrom sklearn.multiclass import OneVsRestClassifieriris = datasets.load_iris()# 鸢尾花数据导入X = iris.data#每一列代表了萼片或花瓣的长宽,一共4列,每一列代表某个被测量的鸢尾植物,iris.shape=(150,4)y = iris.target#target是一个数组,存储了data中每条记录属于哪一类鸢尾植物,所以数组的长度是150,所有不同值只有三个random_state = np.random.RandomState(0)#给定状态为0的随机数组y = label_binarize(y, classes=[0, 1, 2])n_classes = y.shape[1]n_samples, n_features = X.shapeX  = np.c_[X, random_state.randn(n_samples, 200 * n_features)]#添加合并生成特征测试数据集X_train, X_test, y_train, y_test = train_test_split(X, y,                                                    test_size=0.25,                                                    random_state=0)#根据此模型训练简单数据分类器classifier = OneVsRestClassifier(svm.SVC(kernel='linear', probability=True,                                 random_state=random_state))#线性分类支持向量机y_score = classifier.fit(X_train, y_train).decision_function(X_test)#用一个分类器对应一个类别, 每个分类器都把其他全部的类别作为相反类别看待。fpr = dict()tpr = dict()roc_auc = dict()for i in range(n_classes):    fpr[i], tpr[i], _ = roc_curve(y_test[:, i], y_score[:, i])    #计算ROC曲线面积    roc_auc[i] = auc(fpr[i], tpr[i])fpr["micro"], tpr["micro"], _ = roc_curve(y_test.ravel(), y_score.ravel())roc_auc["micro"] = auc(fpr["micro"], tpr["micro"])import matplotlib.pyplot as pltplt.figure()lw = 2plt.plot(fpr[2], tpr[2], color='darkorange',         lw=lw, label='ROC curve (area = %0.2f)' % roc_auc[2])plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--')plt.xlabel('FPR')plt.ylabel('TPR')plt.ylim([0.0, 1.0])plt.xlim([0.0, 1.0])plt.legend(loc="lower right")plt.title("Precision-Recall")plt.show()

效果

Python如何用鸢尾花数据绘制ROC和AUC曲线

以上就是关于“Python如何用鸢尾花数据绘制ROC和AUC曲线”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网Python频道。

--结束END--

本文标题: Python如何用鸢尾花数据绘制ROC和AUC曲线

本文链接: https://lsjlt.com/news/349138.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python如何用鸢尾花数据绘制ROC和AUC曲线
    这篇“Python如何用鸢尾花数据绘制ROC和AUC曲线”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何用鸢尾...
    99+
    2023-07-05
  • Python机器学习性能度量利用鸢尾花数据绘制P-R曲线
    目录一、性能度量1.错误率与精度2.查准率、查全率与F1二、代码实现:1.基于具体二分类问题算法实现代码:2.利用鸢尾花绘制P-R曲线效果:一、性能度量 性能度量目的是对学习期的泛...
    99+
    2023-02-15
    Python鸢尾花数据绘制P-R曲线 Python 机器学习性能度量
  • python如何将多个模型的ROC曲线绘制在一张图(含图例)
    目录多条ROC曲线绘制函数绘制效果调用格式与方法详细解释和说明1.关键函数2.参数解释需要注意的小小坑补充总结多条ROC曲线绘制函数 def multi_models_roc(na...
    99+
    2024-04-02
  • 详解如何利用Python绘制科赫曲线
    目录1. 递归1.1 定义1.2 数学归纳法2. 递归的使用方法2.1 阶乘2.2 字符串反转3. 科赫曲线的绘制3.1 概要3.2 绘制科赫曲线3.3 科赫曲线的雪花效果3.4 分...
    99+
    2024-04-02
  • 如何运用Python和GNU Octave绘制数据
    本篇文章为大家展示了如何运用Python和GNU Octave绘制数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。了解如何使用 Python 和 GNU Octave 完成一项常见的数据科学任务。...
    99+
    2023-06-16
  • 如何根据自有数据拟合绘制3D曲面图-Python matplotlib
    目录 问题提出 绘制简单曲面图 使用自有数据拟合绘制 问题提出 在网上找了很久怎么用自己有的dataframe数据,拟合出3d的曲面图,大部分人都是根据已知函数去绘制,有几篇进行拟合绘制,但是还是根据特定函数生成的数据,没有一篇直接用d...
    99+
    2023-09-25
    python matplotlib 3d
  • 如何利用ECharts和Python接口绘制箱线图
    如何利用ECharts和Python接口绘制箱线图,需要具体代码示例引言:箱线图(Box plot)是统计学中常用的一种可视化方法,用于显示实数型数据的分布情况,通过绘制数据的五数概括(最小值、下四分位数、中位数、上四分位数和最大值)以及异...
    99+
    2023-12-17
    echarts Python接口 箱线图
  • Python数据分析之使用matplotlib绘制折线图、柱状图和柱线混合图
    目录matplotlib介绍matplotlib绘制折线图matplotlib绘制柱状图matplotlib绘制柱线混合图总结 matplotlib介绍 Matplotli...
    99+
    2024-04-02
  • 如何基于python和Matplotlib绘制函数的等高线与三维图像
    这篇文章主要介绍了如何基于python和Matplotlib绘制函数的等高线与三维图像,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。本例绘制的函数为:1. 网格点&e...
    99+
    2023-06-26
  • 如何使用python数据可视化Seaborn绘制山脊图
    这篇文章主要介绍如何使用python数据可视化Seaborn绘制山脊图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 引言山脊图一般由垂直堆叠的折线图组成,这些折线图中的折线区域间彼此重叠,此外它们还共享相同的x...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作