-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathexp_grid_k.m
More file actions
129 lines (126 loc) · 4.21 KB
/
exp_grid_k.m
File metadata and controls
129 lines (126 loc) · 4.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
% tuning parameters
function [bestPara] = exp_grid_k(algo_id, data_id, num_metric,loss_func,k)
base = 10;
n = 2;
m = 16;
para.IsCv = 1;
result_avg = cell(num_metric,1);
for metric = 1:num_metric
result_avg{metric} = cell(n+1,m+1);
for i = 1 : n+1
for j = 1 : m+1
result_avg{metric}{ i, j } = Inf;
end;
end;
end
% lambda = exp(-8+(0:n));
% gamma_1 = exp(-8+(0:n));
para1 = [base.^(-4+(1:n))];
para2 = [ base.^(-6+(1:m))];
for metric = 1:num_metric
for i = 1 : n
result_avg{metric}{ i+1, 1 } = para1(i);
end
for j = 1 : m
result_avg{metric}{ 1, j+1 } = para2(j);
end
end
for j = 1 : m
% for i = n : -1 : 1
for i = 1:n
para.para1 = para1(i);
para.para2 = para2(j);
para.k = k;
[ avg_metrics, ~ ] = ...
exp_func( algo_id, data_id, para, loss_func);
for metric = 1:num_metric
result_avg{metric}{ i+1, j+1 } = avg_metrics(metric);
csvwrite( [ 'result/k' num2str(k) '-avg-algo' num2str( algo_id ) '-' data_id '-m' num2str(metric) '.csv' ], result_avg{metric} );
end
end;
end;
bestPara = cell(metric,1);
for metric = 1:num_metric
if loss_func == 1
[~,idx] = max([result_avg{metric}{2:end,2:end}]);
else
[~,idx] = min([result_avg{metric}{2:end,2:end}]);
end
idx1 = rem(idx-1, size(result_avg{metric},1)-1)+1;
bestPara{metric}.para1 = para1(idx1);
idx2 = floor((idx-1)/ (size(result_avg{metric},1)-1))+1;
bestPara{metric}.para2 = para2(idx2);
end
end
% function exp_grid(algo_id, data_id)
% base = 10;
% k = 10;
% n = 10;
% m = 10;
% num_metric = 3;
% para.IsCv = 1;
%
% result_avg = cell(num_metric,1);
% result_std = cell(num_metric,1);
% for metric = 1:num_metric
% result_avg{metric} = cell(n+1,m+1);
% result_std{metric} = cell(n+1,m+1);
% for i = 1 : n+1
% for j = 1 : m+1
% result_avg{metric}{ i, j } = Inf;
% result_std{metric}{ i, j } = Inf;
% end;
% end;
% end
% % lambda = exp(-8+(0:n));
% % gamma_1 = exp(-8+(0:n));
% lambda = [base.^(-6+(1:n))];
% gamma_1 = [ base.^(-6+(1:m))];
% for metric = 1:num_metric
% for i = 1 : n
% result_avg{metric}{ i+1, 1 } = lambda(i);
% result_std{metric}{ i+1, 1 } = lambda(i);
% end
% for j = 1 : m
% result_avg{metric}{ 1, j+1 } = gamma_1(j);
% result_std{metric}{ 1, j+1 } = gamma_1(j);
% end
% end
% for j = 1 : m
% for i = n : -1 : 1
% para.lambda = lambda(i);
% para.gamma_1 = gamma_1(j);
% para.k = k;
% [ avg_metrics, std_metrics ] = ...
% exp_func( algo_id, data_id, para, 1);
% for metric = 1:num_metric
% result_avg{metric}{ i+1, j+1 } = avg_metrics(metric);
% result_std{metric}{ i+1, j+1 } = std_metrics(metric);
% csvwrite( [ 'result/avg-algo' num2str( algo_id ) '-' data_id '-m' num2str(metric) '.csv' ], result_avg{metric} );
% csvwrite( [ 'result/std-algo' num2str( algo_id ) '-' data_id '-m' num2str(metric) '.csv' ], result_std{metric} );
% end
% end;
% end;
% end
% tuning k
% function exp_exe(algo_id)
% n = 10;
% result_avg = cell(n,2);
% result_std = cell(n,2);
% k = 2.^(-1+(1:n));
% for i = 1 : n
% result_avg{ i, 1 } = k(i);
% result_std{ i, 1 } = k(i);
% result_avg{ i, 2 } = Inf;
% result_std{ i, 2 } = Inf;
% end
% for i = 1 : n
% para.lambda = 0;
% para.eta = 1;
% para.k = k(i);
% [ result_avg{ i, 2 }, result_std{ i, 2 } ] = ...
% exp_func( algo_id, 'HIV', para, 1 );
% csvwrite( [ 'result-avg-algo' num2str( algo_id ) '.csv' ], result_avg );
% csvwrite( [ 'result-std-algo' num2str( algo_id ) '.csv' ], result_std );
% end;
% end