forked from cemo91/DBALEVS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
top_leverage_query.m
30 lines (26 loc) · 1.13 KB
/
top_leverage_query.m
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
labeled_indices = initial_labeled_indices;
unlabeled_indices = setdiff((1:size(training_data_scaled,1))', labeled_indices);
disp(kernel_type);
tstart = tic;
if strcmp(kernel_type, 'rbf')
kernel = RBF_kernel(get_distance(training_data_scaled),sigma);
elseif strcmp(kernel_type, 'lin')
kernel = linear_kernel(training_data_scaled);
elseif strcmp(kernel_type, 'poly')
kernel = poly_kernel(training_data_scaled,degree,coefficient);
end
[leverage_scores,~,low_rank,~] = calculate_leverage(kernel,eig_threshold);
if normalize
leverage_scores = leverage_scores*(size(leverage_scores,1)/low_rank);
end
time_topleverage_compute(t) = toc(tstart);
for i=1:iter
disp(['iteration' num2str(i)]);
tstart = tic;
query = topleverage(leverage_scores,unlabeled_indices,b_size);
time_topleverage(i,t) = toc(tstart);
labeled_indices = [labeled_indices;query];
unlabeled_indices = setdiff(unlabeled_indices, query);
[~,~,accuracy_temp,~,~] = process_svm(training_data_scaled(labeled_indices,:),training_label(labeled_indices),test_data_scaled,test_label,0,classifier_kernel);
accuracy_topleverage(i,t) = accuracy_temp;
end