📄 train_test_multiple_label.m
字号:
% Input pararmeter:
% D: data array, including the feature data and output class
function run = train_test_multiple_label(X, Y, trainindex, testindex, classifier)
global preprocess;
% The statistics of dataset
num_class = length(preprocess.ClassSet);
actual_num_class = length(preprocess.OrgClassSet);
class_set = preprocess.ClassSet;
for j = 1:actual_num_class
X_train = X(trainindex, :);
Y_train = Y(trainindex, j);
X_test = X(testindex, :);
Y_test = Y(testindex, j);
[Y_compute, Y_prob] = Classify(classifier, X_train, Y_train, X_test, Y_test, num_class);
run.Y_compute = Y_compute; run.Y_prob = Y_prob; run.Y_test = Y_test; % Bugs for this version
% Aggregate the predictions in a shot
if (preprocess.ShotAvailable == 1), [Y_compute, Y_prob, Y_test] = AggregatePredByShot(Y_compute, Y_prob, Y_test, testindex, preprocess.ClassSet); end;
[run_class.yy(j), run_class.yn(j), run_class.ny(j), run_class.nn(j), run_class.prec(j), run_class.rec(j), run_class.F1(j),...
run_class.err(j)] = CalculatePerformance(Y_compute, Y_test, class_set);
end
run.Macro_Prec = sum(run_class.prec) / actual_num_class;
run.Macro_Rec = sum(run_class.rec) / actual_num_class;
run.Macro_F1 = NormalizeRatio(2 * run.Macro_Prec * run.Macro_Rec, run.Macro_Prec + run.Macro_Rec);
run.Micro_Prec = NormalizeRatio(sum(run_class.yy), sum(run_class.yy) + sum(run_class.ny));
run.Micro_Rec = NormalizeRatio(sum(run_class.yy), sum(run_class.yy) + sum(run_class.yn));
run.Micro_F1 = NormalizeRatio(2 * run.Micro_Prec * run.Micro_Rec, run.Micro_Prec + run.Micro_Rec);
run.Err = sum(run_class.err) / actual_num_class;
fprintf('Micro_Prec:%f, Micro_Rec:%f, Micro_F1:%f, Err:%f\n', run.Micro_Prec, run.Micro_Rec, run.Micro_F1, run.Err);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -