fixing this error?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
shivan artosh
le 9 Sep 2020
Commenté : shivan artosh
le 10 Sep 2020
i want to calculate precision , recall , f-score and ...., but i get this erro:
Undefined function 'diag' for input arguments of type 'mlearnlib.graphics.chart.ConfusionMatrixChart'.
Error in SHIVANaugmented (line 74)
tp_m = diag(cm);
==============================================the following is a part of my code:
cm=confusionchart (imdsValidation.Labels, YPred);
%%
tp_m = diag(cm);
for i = 1:2 % number of classes
TP = tp_m(i);
FP = sum(cm(:, i), 1) - TP;
FN = sum(cm(i, :), 2) - TP;
TN = sum(cm(:)) - TP - FP - FN;
Accuracy = (TP+TN)./(TP+FP+TN+FN);
TPR = TP./(TP + FN);%tp/actual positive RECALL SENSITIVITY
if isnan(TPR)
TPR = 0;
end
PPV = TP./ (TP + FP); % tp / predicted positive PRECISION
if isnan(PPV)
PPV = 0;
end
TNR = TN./ (TN+FP); %tn/ actual negative SPECIFICITY
if isnan(TNR)
TNR = 0;
end
FPR = FP./ (TN+FP);
if isnan(FPR)
FPR = 0;
end
FScore = (2*(PPV * TPR)) / (PPV+TPR);
if isnan(FScore)
FScore = 0;
end
end
%%
save youRnetwork net
2 commentaires
Walter Roberson
le 9 Sep 2020
A confusion chart is a graphic object. What are you hoping that diag() of one would return?
Réponse acceptée
Walter Roberson
le 10 Sep 2020
tp_m = diag(cm.NormalizedValues);
5 commentaires
Walter Roberson
le 10 Sep 2020
Go back to your original code and change
cm=confusionchart (imdsValidation.Labels, YPred);
to
cc = confusionchart (imdsValidation.Labels, YPred);
cm = cc.NormalizedValues;
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Recognition, Object Detection, and Semantic Segmentation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!