How can I find the different score and threshold of a treebagger for ROC plotting?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Classification Ensembles 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!