MATLAB绘制ROC曲线
发布日期:2025-04-12 09:59:16 浏览次数:11 分类:精选文章

本文共 1344 字,大约阅读时间需要 4 分钟。

ROC曲线(Receiver Operating Characteristic Curve)

1. 简介

ROC曲线是评估二元分类模型(如Logistic回归)性能的重要工具。

  • 横轴:假阳性率(False Positive Rate,FPR),即模型预测为正例但实际为负例的比例。
  • 纵轴:真阳性率(True Positive Rate,TPR),即模型预测为正例且实际为正例的比例。

通过在不同阈值下的TPR-FPR曲线,可以直观地比较模型性能。ROC曲线越接近左上角,模型性能越好。同时,曲线下面积(Area Under Curve,AUC)也反映了模型的分类能力,AUC越大,模型性能越优秀。AUC为0.5则表示模型性能与随机猜测相当。

2. MATLAB实现

2.1 函数

在MATLAB中,常用以下函数绘制ROC曲线:

  • perfcurve

    [X, Y, T, AUC] = perfcurve(labels, scores, posclass)
    • labels:标签数组,0代表负例,1代表正例。
    • scores:预测得分数组。
    • posclass:正类标记(通常为1)。
  • rocmetrics(2022版新函数):

    rocObj = rocmetrics(Labels, Scores, ClassNames)  rocObj = rocmetrics(Labels, Scores, ClassNames, Name=Value)
    • Labels:标签数组。
    • Scores:预测得分数组。
    • ClassNames:类别名称数组。
    • 可选参数:NameValue用于设置其他属性(如曲线颜色)。
  • 2.2 案例

    以下是绘制ROC曲线的典型MATLAB代码:

    % 关闭所有图形窗口  clc  close all  % 定义数据路径  figureDir = '.\Figures\';  % 加载数据  load fisheriris  X = meas(51:end, 3:4); % 提取测量特征  Y = (strcmp('versicolor', species(51:end))); % 标记正类(versicolor)  % 逻辑回归建模  [B, dev, stats] = glmfit(X, Y, 'binomial'); % 逐步回归模型  scores = glmval(B, X, 'logit'); % 模型预测分数  % 绘制ROC曲线  [X, Y, T, AUC] = perfcurve(Y, scores, true); % true表示Y为正类标记  h(1) = plot(X, Y, 'linewidth', 1.5);  xlabel('假阳性率 (False Positive Rate)');  ylabel('真阳性率 (True Positive Rate)');  title('ROC曲线');  set(gca, 'FontSize', 12, 'FontName', 'Times New Roman');

    3. 参考文献

  • J. A. ROC曲线在诊断试验评估中的应用
  • J. B. 雨水引发滑坡的分类研究:基于雷达雨量的国家评估
  • 上一篇:MATLAB绘制图像时调整坐标轴及网格线至最顶层
    下一篇:matlab练习程序(三角形内切圆)

    发表评论

    最新留言

    能坚持,总会有不一样的收获!
    [***.219.124.196]2025年04月26日 23时36分06秒