2017-12-08 3 views
1

ich baue ein modell mit adaboost und versuche, das roc-plot zu arbeiten. hier ist meine Codes:matlab fitensemble plot roc fehler

ens=fitensemble(X,y,'AdaBoostM1',100,'Tree'); 

[ytest, scores] = predict(ens,Xtest); 

figure 
[xx,yy] = perfcurve(label, scores(:,2),'yes'); 
plot(xx,yy) 
xlabel('FPR') 
ylabel('TPR') 
title('ROC'); 

Doch dieser mir einen Fehler geben:

Error using perfcurve>membership (line 693) 
Positive class is not found in the input data. 

meine Trainingsdaten Größe ist 1000x19 und Größendaten testen, 100x19.

Hier ist die Quelle von Matlab: https://www.mathworks.com/matlabcentral/fileexchange/42744-machine-learning-with-matlab?focused=6797233&tab=example

Antwort

0

es gelöst. musste das Etikettenformat von logisch zu numerisch ändern, da meine Label 0s und 1s sind.

Hier ist der korrigierte Code:

ens=fitensemble(X,y,'AdaBoostM1',100,'Tree'); 

[ytest, scores] = predict(ens,Xtest); 

figure 
[xx,yy] = perfcurve(label, scores(:,2),1); 
plot(xx,yy) 
xlabel('FPR') 
ylabel('TPR') 
title('ROC'); 
+0

' 'yes'' nicht logisch ist. –