資源簡(jiǎn)介
使用matlab畫(huà)ROC曲線,% predict - 分類器對(duì)測(cè)試集的分類結(jié)果
% ground_truth - 測(cè)試集的正確標(biāo)簽,這里只考慮二分類,即0和1
% auc - 返回ROC曲線的曲線下的面積

代碼片段和文件信息
%??predict???????-?分類器對(duì)測(cè)試集的分類結(jié)果
%??ground_truth?-?測(cè)試集的正確標(biāo)簽這里只考慮二分類,即0和1
%??auc????????????-?返回ROC曲線的曲線下的面積
function??plot_roc()
%初始點(diǎn)為(1.0?1.0)
%計(jì)算出ground_truth中正樣本的數(shù)目pos_num和負(fù)樣本的數(shù)目neg_num
%??predict?ground_truth
tic
data?=?xlsread(‘F:\滑坡\洪都拉斯\多元線性回歸數(shù)據(jù)20170715\ROC_DATA.xlsx‘);
predict?=?data(:2);
ground_truth?=?data(:1);
pos_num?=?sum(ground_truth==1);
neg_num?=?sum(ground_truth==0);
m=size(ground_truth1);
[preIndex]=sort(predict);
ground_truth=ground_truth(Index);
x=zeros(m+11);
y=zeros(m+11);
auc=0;
x(1)=1;y(1)=1;
for?i=2:m
TP=sum(ground_truth(i:m)==1);FP=sum(ground_truth(i:m)==0);
x(i)=FP/neg_num;
y(i)=TP/pos_num;
auc=auc+(y(i)+y(i-1))*(x(i-1)-x(i))/2;
end;
x(m+1)=0;y(m+1)=0;
auc=auc+y(m)*x(m)/2;%計(jì)算的面積
disp(‘AUC?:?‘)
disp(auc)
%%?plot%%
figure
plot(xy‘r‘‘linewidth‘1);
hold?on?
plot([01][01])
grid?on
set(gca‘XTick‘0:0.2:1);
set(gca‘YTick‘0:0.2:1);
axis?equal
title(‘ROC?Curve‘);
xlabel(‘1?-?Specificity‘);
ylabel(‘Sensitivity‘);
set(gca?‘Fontname‘?‘a(chǎn)rial‘);
grid?on
toc
end
%%?Writed?by?王明文?8/29/2017
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????416366??2017-08-29?19:52??ROC_DATA.xlsx
?????文件???????1174??2017-08-29?20:21??plot_roc.m
-----------?---------??----------?-----??----
???????????????417540????????????????????2
評(píng)論
共有 條評(píng)論