Plot confusion doesn't work

Hello,
I have the problem that when I try use plotconfusion, this function doesn't work.
I have dataset with 15 classes and I try to predict the target value using knn-classification. I've divided datasets to training and test datasets (75:25 accordinaly). My dataset has 300 instances and 90 attributes.
The problem is that when I try to call this plotconfusion function I just see that this doesn't work (it somehow just go to a infinite cycle or something like this, the process doesn't terminate). Could you tell me what's the problem or do I use it wrong?
Here the part of my code: knn = ClassificationKNN.fit(XtrainNN,YtrainNN,'NumNeighbors',5); Y_knn = knn.predict(XtestNN); loss(knn, XtestNN, YtestNN) plotconfusion(Y_knn,YtestNN)

3 Kommentare

Andrew Singh
Andrew Singh am 20 Sep. 2017
I'm also having the same problem.
Baran Yildiz
Baran Yildiz am 26 Sep. 2017
I am also having the same problem. Plot confusion doesn't seem to work even for the sample problem/dataset given in the reference link below:
https://au.mathworks.com/help/nnet/ref/plotconfusion.html#inputarg_targets
Tapan
Tapan am 11 Aug. 2023
My error is please tell me how to solve
Error using plotconfusion>standard_args (line 255) Value is not a matrix or cell array.
Error in plotconfusion (line 111) update_args = standard_args(args{:});
Error in dltt (line 18) plotconfusion(testdata.Labels, Predicted);

Melden Sie sich an, um zu kommentieren.

Antworten (3)

Nathan DeJong
Nathan DeJong am 27 Sep. 2017

6 Stimmen

Try transposing the inputs so that they are row vectors rather than column vectors. It worked for me. Seems to be a strange bug in plotconfusion().

1 Kommentar

Pedro Borges
Pedro Borges am 17 Okt. 2018
transposing the inputs worked for me, too! thanks!

Melden Sie sich an, um zu kommentieren.

Hamid Salimi
Hamid Salimi am 9 Jun. 2021

2 Stimmen

I write it for anyone that may have the same problem, I solved it by converting my actual and predicted results to categorical data! your actual and predicted should be n * 1, and then use it:
plotconfusion(categorical(actual),categorical(predicted));
Ilya
Ilya am 17 Dez. 2013

0 Stimmen

I never used plotconfusion, but you can get what you want using functions confusionmat and imagesc. For example,
knn = ClassificationKNN.fit(XtrainNN,YtrainNN,'NumNeighbors',5);
Y_knn = knn.predict(XtestNN);
cm = confusionmat(YtestNN,Y_knn);
imagesc(cm);
colorbar;

Gefragt:

am 17 Dez. 2013

Kommentiert:

am 11 Aug. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by