function ROCxValidacion clear all; clc; % Tabla con Instance Selection (18 parámetros) T18InsSel = [ 0.53623 0.75472; 0.74106 0.89575; 0.8343 0.93007; 0.7 0.85833; 0.63333 0.86038; 0.62222 0.81871; 0.49275 0.81385; 0.63333 0.82704; 0.57295 0.8379;]; % Tabla con Instance Selection (5 parámetros) T5InsSel =[ 0.4783 0.7296; 0.5899 0.7821; 0.8377 0.9152; 0.6855 0.8649; 0.4333 0.7417; 0.3778 0.702; 0.5159 0.8102; 0.33 0.6649; 0.4425 0.7449; ]; % Tabla con crosvalidación (18 parámetros) T18xVal =[ 0.71597 0.8284; 0.76042 0.87819; 0.6875 0.91065; 0.55556 0.81854; 0.34028 0.6752; 0.47222 0.76828; 0.45 0.78283; 0.52083 0.81806; 0.40278 0.68994; ]; % Tabla con crosvalidación (5 parámetros) T5xVal =[ 0.47153 0.67039; 0.5875 0.78986; 0.69097 0.89971; 0.58681 0.8456; 0.33333 0.66667; 0.33333 0.66667; 0.30833 0.71188; 0.33333 0.66667; 0.39167 0.67587; ]; % Tabla con crosvalidación (18 parámetros) y con test en todos los ficheros T18xValCom =[ 0.73744 0.84531; 0.79601 0.89475; 0.86304 0.95997; 0.71027 0.88157; 0.3936 0.70796; 0.53164 0.79963; 0.5029 0.7985; 0.5622 0.83504; 0.45399 0.70633]; % Tabla con crosvalidación (5 parámetros) y con test en todos los ficheros T5xValCom =[ 0.5128 0.7138; 0.6386 0.8239; 0.8039 0.9362; 0.6678 0.8711; 0.3333 0.6667; 0.3333 0.6667; 0.3891 0.7457; 0.3333 0.6667; 0.3902 0.6796; ]; GraficaROC(T18xVal,T18InsSel,'xValid.','Inst. Sel.'); %GraficaROC(T5xVal,T5InsSel,'xValid.','Inst. Sel.'); kk=1; %} % % Función que traza el gráfico ROC de comparación de algoritmos % para 2 métodos de obtención diferentes % function GraficaROC(T1,T2,texto1,texto2) % T1: matriz 1 de prestaciones (algoritmo,metrica) % Métrica 1: Sensitivicty % Métrica 2: Specificity % T2: matriz 2 de prestaciones (algoritmo,metrica) % texto1: descripción del método 1 en la leyenda % texto1: descripción del método 2 en la leyenda nomAlg={'MinDis','MaxLik','DecTr','kNN','SVM','LogReg','Neur','Discr','Bayes','Centroid'}; MarkerVec=['+','o','*','s','d','p','^','v','>']; color1 = 'b'; color2 = 'r'; % Gráfica correspondiente al método 1 nalg=size(T1,1); SNS = T1(:,1); SPC = T1(:,2); for ialg=1:nalg imarker=rem(ialg-1,length(MarkerVec))+1; x=100*(1-SPC(ialg)); %Fall-out (1-Specificity)=False Positive Rate y=100*SNS(ialg); %Sensitivity=True Positive Rate plot(x,y,... 'Marker',MarkerVec(imarker),'LineStyle','none','MarkerEdgeColor',color1); hold all; end SNSMed1=100*mean(SNS); SPCMed1=100*mean(SPC); plot(100-SPCMed1,SNSMed1,'o','MarkerEdgeColor','k','MarkerFaceColor',color1); plot([0,100],[0,100],':k'); legend(nomAlg,'Location','NorthEast'); xlabel('False Positive Rate (%)'); ylabel('True Positive Rate (%)'); axis([0,100,0,100]); % Gráfica correspondiente al método 2 SNS = T2(:,1); SPC = T2(:,2); for ialg=1:nalg imarker=rem(ialg-1,length(MarkerVec))+1; x=100*(1-SPC(ialg)); %Fall-out (1-Specificity)=False Positive Rate y=100*SNS(ialg); %Sensitivity=True Positive Rate plot(x,y,... 'Marker',MarkerVec(imarker),'LineStyle','none','MarkerEdgeColor',color2); hold all; end SNSMed2=100*mean(SNS); SPCMed2=100*mean(SPC); plot(100-SPCMed2,SNSMed2,'o','MarkerEdgeColor','k','MarkerFaceColor',color2); % Leyenda de los métodos ax1=gca; axes('Position',get(ax1,'Position'),'Visible','off','Color','none'); line(-1, -1,'LineStyle','none','Marker','*','Color',color1); line(-1, -1,'LineStyle','none','Marker','*','Color',color2); axis([0,90,0,110]); legend({texto1,texto2},'Location','SouthEast','Color','w');