fixing this error?
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
Walter Roberson
2020-9-9
A confusion chart is a graphic object. What are you hoping that diag() of one would return?
采纳的回答
Walter Roberson
2020-9-10
tp_m = diag(cm.NormalizedValues);
5 个评论
Walter Roberson
2020-9-10
Go back to your original code and change
cm=confusionchart (imdsValidation.Labels, YPred);
to
cc = confusionchart (imdsValidation.Labels, YPred);
cm = cc.NormalizedValues;
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Recognition, Object Detection, and Semantic Segmentation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!