How do I get the confusion matrix for all trained data

11 visualizaciones (últimos 30 días)
Mohamed Elbeialy
Mohamed Elbeialy el 2 de Mayo de 2021
Respondida: Jon Cherrie el 3 de Mayo de 2021
How do I get the confusion matrix for all trained data at one set instead of finding a confusion matrix for each set ( training, validation, test) seperatly?

Respuestas (2)

Jon Cherrie
Jon Cherrie el 3 de Mayo de 2021
You can use the confusionmat command
When you call it, make sure that you pass the data from all sets that you want to combine.
For example, if you're using patternnet to train a network,
[x,t] = iris_dataset;
net = patternnet(10);
net = train(net,x,t);
y = net(x);
% Decode the predictions from "one hot" to classes
species = ["Setosa" "Versicolour" "Virginica"];
t = onehotdecode(t,species,1,"categorical");
y = onehotdecode(y,species,1,"categorical");
% Compute the confusion matrix and display -- note that 't' and 'y' contain
% results from all three sets
cm = confusionmat(t,y)
confusionchart(cm)
I would be careful about combining train, valiadation and test sets in this way as it might lead to misleading results.

Image Analyst
Image Analyst el 2 de Mayo de 2021
It should be pretty straightforward. Just determine the predicted class, and the actual class, where each class is identified by an integer. Then just increment the confusion matrix there
trueClass = 5; % Whatever
estimatedClass = 4; % For example
% Increment the count.
confusionMatrix(trueClass, estimatedClass) = confusionMatrix(trueClass, estimatedClass) + 1;
Note : you cannot determine a confusion matrix for test data since you don't know the true class - you only know the estimated class. You only know the true class for the training data and validation data, not the test data.

Categorías

Más información sobre Get Started with Statistics and Machine Learning Toolbox en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by