Should sensivity and specificity values always be reverse in Matlab?

1 vue (au cours des 30 derniers jours)
phdcomputer Eng
phdcomputer Eng le 13 Mar 2020
I want to compare several methods by using sensivity and specififcity (Measures for performance evaluation) ,
I wrote these codes based on their formula that I studied in wikipedia
sensivity computaion function (rforest is the resault of random forest classifier and ytest is the test labels)
function [SVrforest] = allsensivitydata(rforest,ytest)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
test_count=size(ytest,1);
tp_rf=0;tn_rf=0;fp_rf=0;fn_rf=0;
for i=1:test_count
if(rforest(i)==1 && ytest(i)==1)
tp_rf=tp_rf+1;
end
if(rforest(i)==2 && ytest(i)==2)
tn_rf=tn_rf+1;
end
if(rforest(i)==2 && ytest(i)==1)
fp_rf=fp_rf+1;
end
if(rforest(i)==1 && ytest(i)==2)
fn_rf=fn_rf+1;
end
end
SVrforest=(tp_rf)/(tp_rf+fn_rf);
end
specificity computation function:
function [SPrforest] = allspecificitydata(rforest, ytest)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
test_count=size(ytest,1);
tp_rf=0;tn_rf=0;fp_rf=0;fn_rf=0;
for i=1:test_count
if(rforest(i)==1 && ytest(i)==1)
tp_rf=tp_rf+1;
end
if(rforest(i)==2 && ytest(i)==2)
tn_rf=tn_rf+1;
end
if(rforest(i)==2 && ytest(i)==1)
fp_rf=fp_rf+1;
end
if(rforest(i)==1 && ytest(i)==2)
fn_rf=fn_rf+1;
end
end
SPrforest=(tn_rf)/(tn_rf+fp_rf);
end
I searched and I think sensivity and specivity's range is [0 1], but my question Is that for high sensivity value ,should It's specificity always obtain low value, I mean their values should always be reverse?
forexample : for a classifier sensivity=1 and specificity=0.75 or another example sensivity=0 and specificity=54 Is It correct?
should I change the codes?

Réponses (0)

Catégories

En savoir plus sur Wind Power dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by