roc曲线matlab代码
时间: 2023-05-15 12:02:38 浏览: 427
通过matlab绘制数据的ROC曲线,并输出TN,FP,FN,TP混淆矩阵,含仿真操作录像
5星 · 资源好评率100%
ROC曲线是一种衡量分类器性能的评价指标,常被用于评估二分类问题的分类结果。在Matlab中,可以通过以下代码来绘制ROC曲线:
1. 读取真实标签和分类器预测标签
```matlab
y_true = [0, 1, 0, 1, 0, 1]; % 真实标签
y_score = [0.3, 0.6, 0.2, 0.8, 0.1, 0.7]; % 分类器预测的得分
```
2. 计算FPR和TPR
```matlab
% 按照y_score从大到小排序
[y_score, idx] = sort(y_score, 'descend');
y_true = y_true(idx);
% 初始化FPR和TPR
fpr = zeros(length(y_true) + 1, 1);
tpr = zeros(length(y_true) + 1, 1);
% 计算FPR和TPR
for i = 1:length(y_true)
fpr(i+1) = fpr(i) + (1-y_true(i));
tpr(i+1) = tpr(i) + y_true(i);
end
fpr = fpr / sum(1-y_true);
tpr = tpr / sum(y_true);
```
3. 绘制ROC曲线
```matlab
% 画图
plot(fpr, tpr, 'b-', 'LineWidth', 2);
hold on;
plot([0 1], [0 1], 'r--', 'LineWidth', 2);
xlabel('FPR');
ylabel('TPR');
legend('ROC curve', 'Random guessing');
grid on;
```
其中,y_true是一个长度为n的向量,表示样本的真实标签;y_score也是一个长度为n的向量,表示分类器预测的得分。在计算FPR和TPR时,需要将y_score按照得分从大到小排序。最终,通过plot函数将FPR和TPR连接起来绘制ROC曲线,同时画出随机猜测的虚线。
阅读全文