2017-12-08 25 views
1

私はadaboostでモデルを構築しており、rocプロットを動作させようとしています。ここに私のコードです:しかし、これは私にエラーを与えているmatlab fitensembleプロットrocエラー

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'); 

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

私のトレーニングデータのサイズは、1000x19とテストデータサイズは100x19です。ここで

は、MATLABからソースです: https://www.mathworks.com/matlabcentral/fileexchange/42744-machine-learning-with-matlab?focused=6797233&tab=example

答えて

0

はそれを解決しました。私のラベルは0と1であるので、ラベルフォーマットを論理から数値に変更しなければならなかった。

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''は論理的ではありません。

は、ここで修正されたコードです。 –