Skip to main content

matlab ROC curve


function makeROC()

[X,Y,T,AUC] = perfcurve(  trueTestLabel ,  predictedScore , positiveClassLabel );

AUC
plot(X,Y)
xlabel('1-specificity'); ylabel('sensitivity');
figure
plot(T, [Y  1-X   ] );
legend('sensitivity','specificity');
xlabel('Threshold'); ylabel('change in sensitivity and specificity')

end


function perfBasedOnROCthreshold

thr = .41
rocInfo = load('roc20.info');
perfOrigLabel = rocInfo(: , 1);
perfPredLabel = rocInfo(: , 2);
perfPredScore = rocInfo(: , 3);
noTeseCase = size(perfPredScore ,1);
newPredictedLabel = zeros( noTeseCase,1);

[X,Y,T,AUC] = perfcurve(perfOrigLabel, perfPredScore,1);
plot(X,Y)
xlabel('1-specificity'); ylabel('sensitivity');

figure
plot(T,Y)
xlabel('threshold'); ylabel('sensitivity');

figure
plot(T,1-X)
xlabel('threshold'); ylabel('specificity');

newPos = find(perfPredScore >= thr);
newNeg = find(perfPredScore < thr);
newPredictedLabel(newPos) = 1;
newPredictedLabel(newNeg) = MINUSLABEL;


[C,order] = confusionmat(perfOrigLabel,newPredictedLabel,'order', [1 MINUSLABEL]);
tp = C(1,1);
fn = C(1,2);
fp = C(2,1);
tn = C(2,2);
       
finalSen = (tp)/(tp+fn);
finalSpe = (tn)/(fp+tn);
finalAcc = (tp+tn)/(tp+fn + fp+tn);

end

Comments

Popular posts from this blog

MATLAB cross validation

// use built-in function samplesize = size( matrix , 1); c = cvpartition(samplesize,  'kfold' , k); % return the indexes on each fold ///// output in matlab console K-fold cross validation partition              N: 10    NumTestSets: 4      TrainSize: 8  7  7  8       TestSize: 2  3  3  2 ////////////////////// for i=1 : k    trainIdxs = find(training(c,i) ); %training(c,i);  // 1 means in train , 0 means in test    testInxs  = find(test(c,i)       ); % test(c,i);       // 1 means in test , 0 means in train    trainMatrix = matrix (  matrix(trainIdxs ), : );    testMatrix  = matrix (  matrix(testIdxs  ), : ); end //// now calculate performance %%  calculate performance of a partiti...

SLURM tutorial : Basic commands

Main website for learning SLRUM http://slurm.schedmd.com/tutorials.html Submit a job with name and outputfile name(This will overwrite the parameters in shell file header ) sbatch   -J   job1  -o   job1.out  --partition=batch    myscript.sh   Basic shell script for job #!/bin/sh # #SBATCH --job-name=testJob #SBATCH --time=01:00:00 #SBATCH --nodes=1 #SBATCH --ntasks=1 #SBATCH --partition=dragon-default # # Display all variables set by slurm env | grep "^SLURM" | sort # cd /projects/dragon/FANTOM5/processed_data_feature ## All my commands for job will go here date;time; mkdir t1 How to submit a batch job sbatch myscript.sh How to check the list of jobs of a user squeue -u user1 squeue -u user1 -l # it will show in details   How to check the whole history and status of a job   scontrol show job=JOBID   How to use one particular node in interactive mode. Useful when all...

MATLAB optimization toolbox usage with genetic algorithm

Useful tutorial http://www.mathworks.com/products/global-optimization/description3.html Best example of implementatoin with Constraint, objective function http://www.mathworks.com/help/gads/examples/constrained-minimization-using-the-genetic-algorithm.html More about how to use multi-objective http://www.mathworks.com/discovery/multiobjective-optimization.html http://www.mathworks.com/help/gads/examples/performing-a-multiobjective-optimization-using-the-genetic-algorithm.html http://www.mathworks.com/help/gads/examples/multiobjective-genetic-algorithm-options.html Example GAMULTOBJ (can handle Multiple Objective)  GA(can handle 1 objective) Constrained Minimization Problem We want to minimize a simple fitness function of two variables x1 and x2 min f(x) = 100 * (x1^2 - x2) ^2 + (1 - x1)^2; x min f(x) = 100 * (x1^2 + x2) ^2 + (1 + x1)^2; x such that the following two nonlinear constraints and bounds are satisfied x1*x2 + x1 - x2 + 1.5 <...