MATLAB绘制ROC曲线

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WW、forever

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值