Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %% Wczytanie niezbednych danych
- format long
- rng(1);
- % wprowadzenie sciezki do pliku z danymi
- sciezka = input('Katalog zawierajacy zbiór danych (pelna sciezka): ', 's');
- % wczytanie wczesniej przygotowanych danych
- load([sciezka, '\', 'dane_do_nauki.mat']);
- % poinformowanie uzytkownika o stanie dzialania aplikacji
- fprintf('Zakonczono wczytywanie danych.\n');
- % deklaracja wspólczynników do przebadania
- cost_gamma = [65536, 2; 1024, 8];
- [H, W] = size(cost_gamma);
- % wprowadzenie ilosci iteracji do wykonania podczas procesu nauki
- N = input('Ilosc iteracji do wykonania: ');
- % stworzenie macierzy przechowujacych wyniki eksperymentów
- Wyniki_spearman = zeros(N, H);
- Wyniki_spearman_odch_std = zeros(H,1);
- Wyniki_spearman_mediana = zeros(H,1);
- Wyniki_kendall = zeros(N, H);
- Wyniki_kendall_odch_std = zeros(H,1);
- Wyniki_kendall_mediana = zeros(H,1);
- % podzielenie zbioru danych
- [Ilosc_danych, ~] = size(baza_do_nauki);
- label=baza_do_nauki(:,1);
- dane=baza_do_nauki(:,2:rozmiar+1);
- % losowanie podziału na dane uczące i testujące
- pivot = round(Ilosc_danych * 0.8);
- permutacje = zeros(N,pivot);
- for j = 1:N
- perm=randperm(Ilosc_danych);
- permutacje(j,:) = perm(1:pivot);
- end
- % poinformowanie uzytkownika o stanie dzialania aplikacji
- fprintf('Zakonczono przygotowywanie danych.\n');
- %przyporzadkowanie 4 procesorów logicznych
- parpool(4);
- %% Uczenie
- for idx_model = 1 : H
- fprintf('Model %i:\n',idx_model);
- parfor iter = 1 : N
- fprintf('Iteracja %i:\n',iter);
- dane_uczace = ismember(obrazy,permutacje(iter,:));
- dane_testujace = ~dane_uczace;
- c_str = sprintf('%f',cost_gamma(idx_model,1));
- g_str = sprintf('%.2f',cost_gamma(idx_model,2));
- libsvm_options = ['-s 3 -g ',g_str,' -c ',c_str,' -h 0'];
- model = svmtrain(label(dane_uczace,:),dane(dane_uczace,:),libsvm_options)
- [predict_score, ~, ~] = svmpredict(label(dane_testujace,:), dane(dane_testujace,:), model)
- Wyniki_spearman(iter, idx_model) = corr(predict_score, label(dane_testujace,:),'type','Spearman');
- Wyniki_kendall(iter, idx_model) = corr(predict_score, label(dane_testujace,:),'type','Kendall');
- end
- Wyniki_spearman_mediana(idx_model,1) = median(Wyniki_spearman(:,idx_model));
- Wyniki_spearman_odch_std(idx_model,1) = std(Wyniki_spearman(:,idx_model),0);
- Wyniki_kendall_mediana(idx_model,1) = median(Wyniki_kendall(:,idx_model));
- Wyniki_kendall_odch_std(idx_model,1) = std(Wyniki_kendall(:,idx_model),0);
- end
- %zapisanie wyników
- save('Wyniki_eksperymentow.mat', 'Wyniki_spearman', 'Wyniki_spearman_mediana', 'Wyniki_spearman_odch_std', 'Wyniki_kendall', 'Wyniki_kendall_mediana', 'Wyniki_kendall_odch_std');
- %zwolnienie procesorów logicznych
- delete(gcp('nocreate'));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement