How can I find the different score and threshold of a treebagger for ROC plotting?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I am trying to plot a ROC to know the preformance of tree bagger. I use the attached dataset and the following code to perform the classifiaction. As my problem is a binary classification, I have two columns of score values from treebagger. My class of interest is '1' and I want to calculate the thresholds. My ROC curve is something wrong. Please kindly help me to solve it. Thank you.
load ('Data.mat');
Allfeature = D(:,1:14);
Label = D(:,15);
% Half for training
Trainfeatures = Allfeature(1:544,:);
Trainlabels =Label(1:544,:);
% Half for testing
Testfeatures = Allfeature(545:end,:);
Testlabels = Label(545:end,:);
% tree bagger for classification
template = templateTree(...
'MaxNumSplits', 2000);
TreeBagger = fitcensemble(...
Trainfeatures, ...
Trainlabels, ...
'Method', 'Bag', ...
'NumLearningCycles',100, ...
'Learners', template,'ClassNames', [1; 0]);
[labels,score] = predict(TreeBagger,Testfeatures);
diffscore = score(:,1) - max(score(:,2));
[X,Y,T,~,OPTROCPT,suby,subnames] = perfcurve(Testlabels,diffscore,'1');
% plotconfusion(ORFTestlabels,ORFlabels)
[c,cm,ind,per] = confusion(Testlabels',labels')
plot(X,Y,'--','LineWidth',1)
0 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu Classification Ensembles finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!