|
a |
|
b/calculate_error.m |
|
|
1 |
function tbl = calculate_error(true,pred) |
|
|
2 |
|
|
|
3 |
% Calculate TP, FP, TN, FN, and class accuracy for matrices of true and |
|
|
4 |
% predicted labels |
|
|
5 |
|
|
|
6 |
class = unique(true); |
|
|
7 |
|
|
|
8 |
for i = 1:numel(class) |
|
|
9 |
|
|
|
10 |
TP(i,1) = sum(pred==class(i) & true==class(i)) / sum(pred==class(i)) * 100; |
|
|
11 |
FP(i,1) = sum(pred==class(i) & true~=class(i)) / sum(pred==class(i)) * 100; |
|
|
12 |
|
|
|
13 |
TN(i,1) = sum(pred~=class(i) & true~=class(i)) / sum(pred~=class(i)) * 100; |
|
|
14 |
FN(i,1) = sum((pred~=class(i)) & (true==class(i))) / sum(pred~=class(i)) * 100; |
|
|
15 |
|
|
|
16 |
class_acc(i,1) = sum(pred==class(i) & true==class(i))/sum(true==class(i)); |
|
|
17 |
end |
|
|
18 |
|
|
|
19 |
TP(isnan(TP)) = 0; |
|
|
20 |
FP(isnan(FP)) = 0; |
|
|
21 |
TN(isnan(TN)) = 0; |
|
|
22 |
FN(isnan(FN)) = 0; |
|
|
23 |
|
|
|
24 |
|
|
|
25 |
tbl = array2table([TP, FP, TN, FN,class_acc]); |
|
|
26 |
tbl.Class = class; |
|
|
27 |
tbl.Properties.VariableNames{1} = 'TP'; |
|
|
28 |
tbl.Properties.VariableNames{2} = 'FP'; |
|
|
29 |
tbl.Properties.VariableNames{3} = 'TN'; |
|
|
30 |
tbl.Properties.VariableNames{4} = 'FN'; |
|
|
31 |
tbl.Properties.VariableNames{5} = 'Class_Acc'; |
|
|
32 |
tbl = movevars(tbl, 'Class', 'Before', 'TP'); |
|
|
33 |
|
|
|
34 |
end |
|
|
35 |
|
|
|
36 |
|
|
|
37 |
|