首页
学习
活动
专区
圈层
工具
发布

机器学习入门 10-7 ROC曲线

▲threshold值越小,FPR和TPR值越大 换句话说,FPR和TPR两个指标呈现相一致的关系,随着FPR值的升高,TPR的值也会随着升高,FPR的值降低相对应的TPR的值也会随着降低。...有了这些准备,接下来就可以绘制ROC曲线了。ROC曲线其实就是x轴取FPR的值,而y轴取TPR的值。...通过上面ROC曲线很明显的可以看到:随着FPR值的逐渐升高(x轴表示FPR),相应的TPR的值也逐渐的升高(y轴表示TPR)。...b 使用Sklearn绘制ROC曲线 接下来看看如何通过sklearn绘制ROC曲线,绘制ROC曲线的roc_curve函数在sklearn的metrics模块中。...这是因为ROC曲线FPR越小的时候(x轴),换句话说FP这样的错误越少的时候(FP表示算法预测样本为"类别1"但是预测错误的样本数),相对应的y值就越大(y值表示的是TPR,也就是TPR越大),ROC曲线整体会被抬高

1.9K10

一步一步理解机器学习的ROC曲线

你好,我是zhenguo ROC曲线是评估机器学习模型分类能力最常用的一条曲线,那么你知道: ROC曲线x,y轴各代表什么含义? ROC曲线上的一个点代表什么含义?...x轴是FPR,y轴是TPR,如下图所示: 其中: x轴的FPR,即假阳率: 想象为:在所有的恶性肿瘤中,被预测成良性的比例,显然我们希望这个比例越小越好。...y轴的TPR就是Recall值,即真阳率: 想象为:在所有良性肿瘤中,被预测为良性的比例,显然我们希望这个比例越大越好。...ROC曲线上的点到底代表什么含义? 在二分类(0,1)的模型中,一般我们最后的输出是一个概率值,表示结果是1的概率。 那么我们最后怎么决定输入的x是属于0或1呢?...所以当阈值从0开始慢慢移动到1的过程,就会形成很多对(FPR, TPR)的值,将它们画在坐标系上,就是所谓的ROC曲线。

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【机器学习 | ROC & AUC】

    如图所示,x轴表示最后模型的输出概率,y轴表示经过sigmoid的变换后的输出结果,对应的TPR、FPR如表示所示,可以发现不同阈值的结果不同。...TPR FPR 左图0.5 1 右图0.750.75不同阈值的设置会造成大量的参数和结果,为此,ROC曲线以FPR为x轴,TPR为y轴绘制二维图像,在ROC图上的特殊线:y = 1:表示正样本全部判断正确...,并且x值越小模型的效果越好;x = 0:表示负样本全部没有误判,并且y值越大模型的效果越好;y = x:表示TPR = FPR,(1,1)点表示正样本全部判断正确,负样本全部错判;三、AUC基本理解AUC...(Area Under the Curve)表示的是在ROC曲线与坐标轴围成的面积,表示在FPR从0到1的过程中TPR的累积值x = 0:表示在当前阈值下,只有正样本的得分大于阈值;y = 1:表示在当前阈值下...FPR为0,表现为x = 0;② 当负样本的阈值开始大于阈值时,TRP不变,FPR增加,此时开始对AUC进行计算,因为AUC表示的是从0到1的过程中TPR的累积值FPR开始增加时,不同的TPR对AUC的累积值不同

    22610

    Python绘制ROC曲线

    1 问题 如何利用python设计程序,绘制ROC曲线。 2 方法 绘制ROC曲线主要基于python 的sklearn库中的两个函数,roc_curv和auc两个函数。...roc_curv 用于计算出fpr(假阳性率)和tpr(真阳性率)auc用于计算曲线下面积,输入为fpr、和tpr 代码清单 1 # 导包 import numpy as np import matplotlib.pyplot...as plt from sklearn.metrics import roc_curve, auc # 计算 fpr, tpr, thread = roc_curve(y_test, y_score...ROC曲线可以用来评估分类器的输出质量。 ROC曲线Y轴为真阳性率,X轴为假阳性率。这意味着曲线的左上角是“理想”点——假阳性率为0,真阳性率为1。...ROC曲线通常用于二元分类中研究分类器的输出(也可在多分类中使用,需要对标签进行二值化【比如ABC三类,进行分类时将标签进行二值化处理[A(1)、BC(0)】、【B(1)、AC(0)】

    65910

    通过三个直观步骤理解ROC曲线

    ROC曲线是一个分类模型效果好坏评判的的可视化表示。 在这篇文章中,我将分三个步骤头开始构建ROC曲线。 步骤1:获取分类模型预测 当我们训练一个分类模型时,我们得到得到一个结果的概率。...此时,我们 正确分类90%的阳性,那些“回报”(TPR)40%的负面评价,那些“没有偿还”的人(FPR) 我们可以看到,TPR和FPR的结果随着阈值的增大而降低。...当我们提高阈值时,我们会更好地对消极因素进行分类,但这是以错误地对更多积极因素进行分类为代价的 步骤3:绘制每个截止点的TPR和FPR 为了绘制ROC曲线,我们需要计算多个不同阈值的TPR和FPR(这一步包含在所有相关库中...对于每个阈值,我们在x轴上绘制FPR值,在y轴上绘制TPR值。然后我们用一条线把这些点连接起来。就是这样!...下面的图5中,我们可以看到ROC曲线上的每个点是如何代表某一分类在给定截断点处的FPR和TRP。 注意,1处的阈值是如何引出第一个点(0,0)而0处的阈值是如何引出最后一个点(1,1)的。 ?

    67810

    【统计】 ROC曲线(1) - 模型评估首选方案

    横坐标X轴为 1 – 特异性,也称为假阳性率(误报率),X轴越接近零准确率越高;纵坐标Y轴称为敏感度,也称为真阳性率(敏感度),Y轴越大代表准确率越好。...对于每个混淆矩阵,我们计算两个指标TPR和FPR,以FPR为x轴,TPR为y轴画图,就得到了ROC曲线。 ? ?...曲线上的每个点向X轴做垂线,得到若干梯形,这些梯形面积之和也就是AUC;(2)Mann-Whitney统计量: 统计正负样本对中,有多少个组中的正样本的概率大于负样本的概率。...最优临界点 所谓找到最优临界点,就是保证TPR高的同时FPR要尽量的小,建立max(TPR+(1-FPR))的模型。同样有三种方法:找到离(0,1)最近的点和Youden index。 ? 1....Youden index : 最大化ROC曲线上的点到x轴的垂直距离(最大化TPR(Sn)和FPR(1-Sp)的差异); ?

    3.2K20

    分类模型评估的方法及Python实现

    分类模型 分类问题其实在生活中处处可见,比如我们在大街上看妹纸,会把妹纸的外貌分为好看和非常好看(求生欲。。。);再比如我们刷微博,会把微博推送给我们的内容分为喜欢的和不喜欢的。...我们将微博的文字内容,图片内容等特征X代入到分类模型F中,得到分类结果是y_hat = [1, 1, 0, 0, 0]。...如果我们让阈值从1逐渐降低到0,会得到很多对TPR和1 - TNR,将这些值当做数据点,以TPR为y轴,1 - TNR为x轴绘制出一条曲线,这条曲线就是ROC曲线。...get_auc(y, y_pred)) df.plot(x="fpr", y="tpr", label="roc") ?...10.3 对于正例和负例有着对等预测能力的ROC曲线 阈值为0.5时,我们让预测值有70%的可能性是正确预测。比如yi = 1,那么预测值有70%的可能性是[0.5, 1]之间的随机数。

    1.5K10

    还有RoC曲线与PR曲线?

    在机器学习的算法评估中,尤其是分类算法评估中,我们经常听到精确率(precision)与召回率(recall),RoC曲线与PR曲线这些概念,那这些概念到底有什么用处呢?...严格的数学定义如下:     FPR=FP/(FP+TN) 我们熟悉了精确率, 召回率和特异性,以及TPR和FPR,后面的RoC曲线和PR曲线就好了解了。...03 RoC曲线和PR曲线 有了上面精确率, 召回率和特异性的基础,理解RoC曲线和PR曲线就小菜一碟了。 以TPR为y轴,以FPR为x轴,我们就直接得到了RoC曲线。...从FPR和TPR的定义可以理解,TPR越高,FPR越小,我们的模型和算法就越高效。也就是画出来的RoC曲线越靠近左上越好。如下图左图所示。从几何的角度讲,RoC曲线下方的面积越大越大,则模型越优。...所以有时候我们用RoC曲线下的面积,即AUC(Area Under Curve)值来作为算法和模型好坏的标准。 ? 以精确率为y轴,以召回率为x轴,我们就得到了PR曲线。

    97850

    Python数据处理从零开始----第四章(可视化)(11)多分类ROC曲线目录

    ROC曲线通常在Y轴上具有真阳性率,在X轴上具有假阳性率。这意味着图的左上角是“理想”点 - 误报率为零,真正的正率为1。这不太现实,但它确实意味着曲线下面积(AUC)通常更好。...多分类设置 ROC曲线通常用于二分类以研究分类器的输出。为了将ROC曲线和ROC区域扩展到多类或多标签分类,有必要对输出进行二值化。⑴可以每个标签绘制一条ROC曲线。...(n_classes): fpr[i], tpr[i], _ = roc_curve(y_test[:, i], y_score[:, i]) roc_auc[i] = auc(fpr[...(y_test.ravel(), y_score.ravel()) roc_auc["micro"] = auc(fpr["micro"], tpr["micro"]) 第五步绘图 # In[*]...结论:这样我们就得到多分类情况下微观的平均ROC值

    1.9K00

    分类模型评估的方法及Python实现

    分类模型 分类问题其实在生活中处处可见,比如我们在大街上看妹纸,会把妹纸的外貌分为好看和非常好看(求生欲。。。);再比如我们刷微博,会把微博推送给我们的内容分为喜欢的和不喜欢的。...如果我们让阈值从1逐渐降低到0,会得到很多对TPR和1 - TNR,将这些值当做数据点,以TPR为y轴,1 - TNR为x轴绘制出一条曲线,这条曲线就是ROC曲线。...(y, y_pred))df.plot(x="fpr", y="tpr", label="roc") ?...(y, y_pred))df.plot(x="fpr", y="tpr", label="roc") ?...10.3 对于正例和负例有着对等预测能力的ROC曲线 阈值为0.5时,我们让预测值有70%的可能性是正确预测。比如yi = 1,那么预测值有70%的可能性是[0.5, 1]之间的随机数。

    1.1K30

    精确率与召回率,RoC曲线与PR曲线

    在机器学习的算法评估中,尤其是分类算法评估中,我们经常听到精确率(precision)与召回率(recall),RoC曲线与PR曲线这些概念,那这些概念到底有什么用处呢?     ...严格的数学定义如下:     \(FPR = \frac{FP}{FP + TN }\)      我们熟悉了精确率, 召回率和特异性,以及TPR和FPR,后面的RoC曲线和PR曲线就好了解了。...RoC曲线和PR曲线     有了上面精确率, 召回率和特异性的基础,理解RoC曲线和PR曲线就小菜一碟了。     以TPR为y轴,以FPR为x轴,我们就直接得到了RoC曲线。...从FPR和TPR的定义可以理解,TPR越高,FPR越小,我们的模型和算法就越高效。也就是画出来的RoC曲线越靠近左上越好。如下图左图所示。从几何的角度讲,RoC曲线下方的面积越大越大,则模型越优。...所以有时候我们用RoC曲线下的面积,即AUC(Area Under Curve)值来作为算法和模型好坏的标准。 ?     以精确率为y轴,以召回率为x轴,我们就得到了PR曲线。

    1.4K20

    ROC,AUC,Precision,Recall,F1的介绍与计算

    ROC空间将伪阳性率(FPR)定义为X轴,真阳性率(TPR)定义为Y轴。...对于一个特定的分类器和测试数据集,只能得到一个分类结果,即ROC曲线坐标系中的一点,那么如何得到一条ROC曲线呢?...在不同的阈值下可以得到不同的TPR和FPR值,即可以得到一系列的点,将它们在图中绘制出来,并依次连接起来就得到了ROC曲线,阈值取值越多,ROC曲线越平滑。...AUC为ROC曲线下的面积,它的面积不会大于1,由于ROC曲线一般都处于直线y=x的上方,因此AUC的取值范围通常在(0.5,1)之间。...在基本概念中我们提到了精确率、召回率以及F1值,既然有它们作为二分类的评价指标,为什么还要使用ROC和AUC呢?

    2.8K20

    从零开始学Python【38】--朴素贝叶斯模型(实战部分)

    为检验模型在测试数据集上的预测效果,需要构建混淆矩阵和绘制ROC曲线,其中混淆矩阵用于模型准确率、覆盖率、精准率指标的计算;ROC曲线用于计算AUC值,并将AUC值与0.8相比,判断模型的拟合效果,代码如下...接下来绘制ROC曲线,用于进一步验证得到的结论,代码如下: # 计算正例的预测概率,用于生成ROC曲线的数据 y_score = gnb.predict_proba(X_test)[:,1] fpr,tpr...,threshold = metrics.roc_curve(y_test, y_score) # 计算AUC的值 roc_auc = metrics.auc(fpr,tpr) # 绘制面积图 plt.stackplot...# 计算AUC的值 roc_auc = metrics.auc(fpr,tpr) # 绘制面积图 plt.stackplot(fpr, tpr, color='steelblue', alpha =...的值 roc_auc = metrics.auc(fpr,tpr) # 绘制面积图 plt.stackplot(fpr, tpr, color='steelblue', alpha = 0.5, edgecolor

    2.8K40

    ROC曲线及AUC值

    ROC曲线及AUC值 参考文献:【ROC曲线与AUC值】,【ROC,AUC最透彻的讲解(实例分析+matlab代码)】,【AUC计算方法与Python实现】,【AUC曲线计算方法及代码实现】 1....对某个分类器而言,我们可以根据其在测试样本上的表现得到一个TPR和FPR点对。这样,此分类器就可以映射成ROC平面上的一个点。...调整这个分类器分类时候使用的阈值,我们就可以得到一个经过(0, 0),(1, 1)的曲线,这就是此分类器的ROC曲线。 一般情况下,这个曲线都应该处于(0, 0)和(1, 1)连线的上方。...因为(0, 0)和(1, 1)连线形成的ROC曲线实际上代表的是一个随机分类器。...ROC空间将假阳性率( F P R FPR FPR)定义为 X X X轴,真阳性率( T P R TPR TPR)定义为 Y Y Y轴。

    4.6K41

    模型评价指标—ROC曲线

    之前阐述了混淆矩阵、KS曲线和F1值,本文阐述ROC曲线的原理和Python实现实例,其它指标会在后续文章中详尽阐述,敬请期待 一、详细介绍ROC曲线 1 什么是ROC曲线 ROC曲线又称为受试者特征曲线...现在用逻辑回归模型进行预测,结果如下: 那么根据不同的阈值进行划分,对应的FPR和TPR值如下: 把点绘制到图上,即可得到对应的ROC曲线。...当客户数很多时,对阈值进行更细的划分,就可以得到更光滑的ROC曲线了。 更进一步,ROC曲线和x轴所围成的面积就是AUC的值。...二、用Python如何绘制ROC曲线 用Python绘制ROC曲线,主要基于sklearn库中的roc_curve和auc两个函数。...roc_curve函数用于计算FPR和TPR,auc函数用于计算曲线下面积。

    4.8K40
    领券