我正在使用adaboost建立一个模型并尝试使用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)
解决了它。必须将标签格式从逻辑更改为数字,因为我的标签是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');