Switch to unified view

a b/Ensemble Learning/Bagging/app1.m
1
close all; clear;clc;
2
3
load dataDWT.mat;
4
%load dataAR.mat;
5
%load dataCSP.mat;
6
%load dataPSD.mat;
7
Y(Y==2) = -1;
8
9
10
y=Y;
11
min_parent = 20;
12
num_iterations=30;
13
base_algorithm= 'classification_tree';
14
15
no_objects = length(y);
16
fifth = floor(no_objects / 5);
17
error_train = zeros([num_iterations 1]);
18
error_test = zeros([num_iterations 1]);
19
20
for fold = 1 : 5
21
    mask_test = zeros([1 no_objects]);
22
    mask_test((fold - 1) * fifth + 1 : fifth * fold) = 1;
23
    mask_test = logical(mask_test);
24
    train_set = X(~mask_test,:);
25
    train_ans = y(~mask_test);
26
    test_set = X(mask_test,:);
27
    test_ans = y(mask_test);
28
    
29
    
30
    model = bagging_train(train_set, train_ans, num_iterations, base_algorithm, ...
31
        'min_parent', min_parent);
32
    
33
    [~, error_train_loop] = bagging_predict(model, train_set, train_ans);
34
    [~, error_test_loop] = bagging_predict(model, test_set, test_ans);
35
    error_train = error_train + error_train_loop;
36
    error_test = error_test + error_test_loop;
37
end
38
error_train = error_train / 5;
39
error_test = error_test / 5;
40
41
hold on;
42
xlabel('Number of iterations');
43
ylabel('Error');
44
title('Bagging ');
45
plot(1 : num_iterations, error_train, 'linewidth', 2);
46
47