auc曲线代码matlab
时间: 2024-11-14 08:12:36 浏览: 0
在MATLAB中,计算AUC(Area Under the Curve,曲线下面积)曲线通常涉及到ROC(Receiver Operating Characteristic)曲线的绘制。以下是一个基本的步骤和代码示例:
```matlab
% 假设我们有两类预测值(正例和负例)和对应的真值标签
predictions = [0.8 0.9 0.7 0.6 0.5; 0.2 0.1 0.4 0.3 0.8]; % 预测概率
labels = [1 1 0 0 0; 0 0 1 1 1]; % 真实标签
% 计算真正率(True Positive Rate, TPR)和假正率(False Positive Rate, FPR)
[~, idx] = sort(predictions, 'descend'); % 按降序排序
TPR = cumsum(labels(idx)) ./ sum(labels); % 真正率
FPR = (1:length(TPR) - cumsum(labels(idx))) ./ (length(labels) - sum(labels)); % 假正率
% 计算AUC
auc = trapz(FPR, TPR); % 使用梯形法计算面积
% 绘制ROC曲线
plot(FPR, TPR, 'b', 'LineWidth', 2);
xlabel('False Positive Rate');
ylabel('True Positive Rate');
title(['ROC Curve with AUC = ', num2str(auc)]);
grid on;
```
在这个例子中,`predictions`是模型的预测分数,`labels`是对应的真实类别。首先对预测分数排序,然后计算随阈值变化的真正率和假正率。最后,利用`trapz`函数计算并绘制出ROC曲线,并显示其AUC。
阅读全文