How to draw ROC curve for Equal Error Rate (FAR vs FRR)
11 次查看(过去 30 天)
显示 更早的评论
As 'perfcurve' function is used for drawing ROC curve for False Positive Rate vs True Positive Rate. Which function may be used for drawing ROC curve for Equal Error Rate (False Acceptance Rate vs False Rejection Rate)?
0 个评论
采纳的回答
Namnendra
2024-9-21
Hi Syed,
In MATLAB, while the `perfcurve` function is primarily designed to plot the ROC curve in terms of False Positive Rate (FPR) versus True Positive Rate (TPR), you can still use it to derive the necessary metrics to plot False Acceptance Rate (FAR) versus False Rejection Rate (FRR). Here's how you can achieve that:
Steps to Plot FAR vs FRR in MATLAB:
1. Use `perfcurve` to get FPR and TPR.
2. Calculate FAR and FRR from FPR and TPR.
3. Plot FAR against FRR.
Here's a sample MATLAB code to illustrate this:
% Example data
labels = [0 0 1 1]; % True labels (0 for negative class, 1 for positive class)
scores = [0.1 0.4 0.35 0.8]; % Predicted scores
% Compute ROC curve using perfcurve
[X, Y, T, AUC] = perfcurve(labels, scores, 1);
% Calculate FAR and FRR
FAR = X; % False Acceptance Rate is equivalent to False Positive Rate
FRR = 1 - Y; % False Rejection Rate is 1 - True Positive Rate
% Plot FAR vs FRR
figure;
plot(FAR, FRR, '-b', 'LineWidth', 2);
hold on;
% Find the Equal Error Rate (EER) point
EER_index = find(abs(FAR - FRR) == min(abs(FAR - FRR)));
EER = FAR(EER_index);
% Plot EER point
plot(FAR(EER_index), FRR(EER_index), 'ro', 'MarkerSize', 10, 'MarkerFaceColor', 'r');
text(FAR(EER_index), FRR(EER_index), sprintf(' EER = %.2f', EER), 'VerticalAlignment', 'bottom');
xlabel('False Acceptance Rate (FAR)');
ylabel('False Rejection Rate (FRR)');
title('ROC Curve for Equal Error Rate (EER)');
grid on;
legend('ROC Curve', 'EER Point');
hold off;
Explanation:
- FAR (False Acceptance Rate): This is equivalent to the False Positive Rate (FPR).
- FRR (False Rejection Rate): This is calculated as (1 - TPR).
- EER (Equal Error Rate): The point where FAR equals FRR.
By plotting FAR against FRR, you can identify the EER by finding the point where the two rates are equal or closest. The code provided will mark this point on the graph.
Thank you.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 ROC - AUC 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!