matlab fitensemble plot roc error

时间:2017-12-08 05:01:47

标签: matlab machine-learning roc ensemble-learning

我正在使用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

1 个答案:

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