MATLAB绘制ROC曲线
创始人
2024-06-02 09:05:22
0

ROC曲线(Receiver Operating Characteristic Curve)

1 简介

ROC曲线是用于评估二元分类模型(如Logistic回归)表现优劣的一种工具,其横轴表示假阳性率(false positive rate,FPR),即实际为负例但被模型预测为正例的样本占总负例样本数的比例;纵轴表示真阳性率(true positive rate,TPR),即实际为正例且被模型预测为正例的样本占总正例样本数的比例。ROC曲线的绘制方式是在不同的阈值下计算并绘制出TPR-FPR的曲线。

一般来说,ROC曲线越接近左上角,则模型性能越好。同时,ROC曲线下的面积(Area Under Curve, AUC)也可以用于衡量模型分类的性能,AUC越大说明模型分类性能越好。如果AUC为0.5,则说明模型的分类性能与随机猜测无异。

2 MATLAB代码实现

2.1 函数

在MATLAB中,可以使用perfcurve函数绘制ROC曲线。
语法:

[X,Y,T,AUC] = perfcurve(labels,scores,posclass)

具体详细解释见MATLAB中文帮助-perfcurve函

2022版MATLAB引入 rocmetrics函数,用于评估ROC性能
语法:

rocObj = rocmetrics(Labels,Scores,ClassNames)
rocObj = rocmetrics(Labels,Scores,ClassNames,Name=Value)

具体详细解释见MATLAB中文帮助-rocmetrics函

2.2 案例

下面是一个示例代码:

clc
close all
clear
%% 
pathFigure= '.\Figures\' ;load fisheriris
X = meas(51:end,3:4);
Y = (strcmp('versicolor',species(51:end))); 
[B,dev,stats] = glmfit(X,Y,'binomial');
scores = glmval(B,X,'logit');
[X,Y,T,AUC] = perfcurve(Y,scores,true);figure(1)
h(1) = plot(X,Y,'linewidth',1.5);
xlabel('False positive rate')
ylabel('True positive rate')
title('ROC Curve')
set(gca,'FontSize',12,'Fontname', 'Times New Roman');

成图如下:
在这里插入图片描述

参考

1.论文-J2010-Receiver Operating Characteristic Curve in Diagnostic Test Assessment
2.论文-J2017-Comparing threshold definition techniques for rainfall-induced landslides: A national assessment using radar rainfall

相关内容

热门资讯

安卓删除系统软件卡 手机用久了是不是觉得越来越卡?尤其是安卓系统,有时候连删除系统软件都变得慢吞吞的,真是让人头疼。别急...
章鱼星球刷机安卓系统,畅享智能... 亲爱的读者,你是否曾想过,如果章鱼也能拥有自己的星球,那会是怎样一番景象呢?想象那些八条腿的海洋生物...
安卓变WP10系统,系统变革之... 你知道吗?最近手机圈里可是掀起了一股不小的风潮呢!不少安卓用户竟然开始琢磨着把自己的手机系统换成WP...
源生安卓系统桌面,功能与体验深... 亲爱的读者,你是否曾好奇过,那些运行在我们手机上的安卓系统桌面,究竟是如何诞生的?今天,就让我们一起...
安卓系统系统占内存70个G 你有没有发现,最近你的安卓手机内存越来越不够用了?听说有人家的安卓系统竟然占内存高达70个G,这可真...
安卓系统优化好的手机,打造极致... 你有没有发现,现在手机市场真是热闹非凡,各种品牌、各种型号,让人眼花缭乱。但是,你知道吗?在众多手机...
安卓系统位定位怎么开,基于安卓... 你有没有发现,手机里的安卓系统有时候就像一个神秘的宝藏,藏着许多小秘密呢?今天,我就要来揭秘一个特别...
安卓系统安装占用空间,揭秘占用... 你有没有发现,每次更新安卓系统,手机里的空间就像被无底洞吞噬了一样,越来越少?别急,今天就来跟你聊聊...
安卓系统会被鸿蒙取代吗 你有没有想过,我们手机里那个熟悉的安卓系统,会不会有一天被一个全新的系统给取代呢?没错,说的就是华为...
小米8的系统是安卓,安卓系统下... 你知道吗?最近我在用的小米8手机,它的系统竟然是安卓的!是不是很惊讶?别急,让我来给你详细介绍一下这...
安卓系统触屏的相机,便捷操作与... 你有没有发现,现在手机拍照已经成为我们生活中不可或缺的一部分呢?尤其是安卓系统的触屏相机,简直是我们...
低版本安卓系统手机,揭秘低版本... 你有没有发现,身边总有些朋友还在用那些低版本的安卓系统手机?别看它们看起来普普通通,其实里面藏着不少...
安卓系统的功能需求,功能需求与... 你有没有发现,随着智能手机的普及,安卓系统已经成为了我们生活中不可或缺的一部分呢?想象每天早上醒来,...
安卓机的ios系统,揭秘iOS... 你有没有发现,最近你的安卓手机突然变得有点不一样了?是不是觉得界面看起来有点眼熟,操作起来也好像有点...
吐槽安卓操作系统,揭秘那些让人... 说起安卓操作系统,这可是个让人又爱又恨的家伙。咱们就来聊聊这个话题,看看它都有哪些让人忍不住吐槽的点...
怎么把安卓系统改为苹果,系统转... 你有没有想过,把你的安卓手机换成苹果手机,体验一下那个传说中的流畅和优雅呢?没错,我就是来告诉你,怎...
安卓系统如何用热点,随时随地共... 你有没有想过,你的安卓手机竟然能变身成为一个移动的Wi-Fi热点?没错,就是那个随时随地都能连接网络...
安卓系统自动开抖音,安卓系统自... 你有没有发现,最近你的安卓手机突然变得有点儿“调皮”呢?没错,就是那个我们每天都要刷的抖音,竟然自己...
安卓系统降级会更快吗,降级过程... 你有没有想过,你的安卓手机升级后,有时候操作起来反而不如以前流畅呢?别急,今天就来聊聊这个话题——安...
安卓系统设备扫码在哪,安卓设备... 你有没有遇到过这种情况:手机里装了各种APP,但是有时候想扫码付款或者加入某个群组,却怎么也找不到扫...