52 views (last 30 days)

Show older comments

Hello All,

I am plotting the ROC curve for SVM multiclass(3 classes) task. Getting the error as "Index in position 2 exceeds array bounds (must not exceed 3)"

Error in ROC_SVM (line 70)

scores = double(score(:,final_best_SVM.ClassNames + 1))'; % Compute the posterior probabilities (scores)

My code is

%% Plotting ROC curve for SVM

[predictedLabels,score,cost] = predict(final_best_SVM, features_Testing);

scores = double(score(:,final_best_SVM.ClassNames + 1))'; % Compute the posterior probabilities (scores)

figure(2)

plotroc(dtTest_lab,scores)

title('ROC Curve for SVM')

Harsha Priya Daggubati
on 7 Apr 2020

Hi,

The number of columns of score matrix will be equal to your classes, in your case it is 3. Since you are using +1 in the following line, this issue pops up.

scores = double(score(:,final_best_SVM.ClassNames + 1))

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!