Advertisement
bartek27210

Untitled

Oct 15th, 2019
419
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.78 KB | None | 0 0
  1. %% Wczytanie niezbednych danych
  2. format long
  3. rng(1);
  4. % wprowadzenie sciezki do pliku z danymi
  5. sciezka = input('Katalog zawierajacy zbiór danych (pelna sciezka): ', 's');
  6.  
  7. % wczytanie wczesniej przygotowanych danych
  8. load([sciezka, '\', 'dane_do_nauki.mat']);
  9.  
  10. % poinformowanie uzytkownika o stanie dzialania aplikacji
  11. fprintf('Zakonczono wczytywanie danych.\n');
  12.  
  13. % deklaracja wspólczynników do przebadania
  14. cost_gamma = [65536,  2;  1024,   8];
  15.  
  16. [H, W] = size(cost_gamma);
  17.  
  18. % wprowadzenie ilosci iteracji do wykonania podczas procesu nauki
  19. N = input('Ilosc iteracji do wykonania: ');
  20.  
  21. % stworzenie macierzy przechowujacych wyniki eksperymentów
  22. Wyniki_spearman = zeros(N, H);
  23. Wyniki_spearman_odch_std = zeros(H,1);
  24. Wyniki_spearman_mediana = zeros(H,1);
  25. Wyniki_kendall = zeros(N, H);
  26. Wyniki_kendall_odch_std = zeros(H,1);
  27. Wyniki_kendall_mediana = zeros(H,1);
  28.  
  29. % podzielenie zbioru danych
  30. [Ilosc_danych, ~] = size(baza_do_nauki);
  31. label=baza_do_nauki(:,1);
  32. dane=baza_do_nauki(:,2:rozmiar+1);
  33.  
  34. % losowanie podziału na dane uczące i testujące
  35. pivot = round(Ilosc_danych * 0.8);
  36. permutacje = zeros(N,pivot);
  37. for j = 1:N
  38.     perm=randperm(Ilosc_danych);
  39.     permutacje(j,:) = perm(1:pivot);
  40. end
  41.  
  42. % poinformowanie uzytkownika o stanie dzialania aplikacji
  43. fprintf('Zakonczono przygotowywanie danych.\n');
  44.  
  45. %przyporzadkowanie 4 procesorów logicznych
  46. parpool(4);
  47.  
  48. %% Uczenie
  49. for idx_model = 1 : H
  50.     fprintf('Model %i:\n',idx_model);
  51.     parfor iter = 1 : N
  52.         fprintf('Iteracja %i:\n',iter);
  53.         dane_uczace = ismember(obrazy,permutacje(iter,:));
  54.         dane_testujace = ~dane_uczace; 
  55.        
  56.         c_str = sprintf('%f',cost_gamma(idx_model,1));
  57.         g_str = sprintf('%.2f',cost_gamma(idx_model,2));
  58.         libsvm_options = ['-s 3 -g ',g_str,' -c ',c_str,' -h 0'];    
  59.    
  60.         model = svmtrain(label(dane_uczace,:),dane(dane_uczace,:),libsvm_options)
  61.         [predict_score, ~, ~] = svmpredict(label(dane_testujace,:), dane(dane_testujace,:), model)  
  62.         Wyniki_spearman(iter, idx_model) = corr(predict_score, label(dane_testujace,:),'type','Spearman');
  63.         Wyniki_kendall(iter, idx_model) = corr(predict_score, label(dane_testujace,:),'type','Kendall');
  64.     end
  65.     Wyniki_spearman_mediana(idx_model,1) = median(Wyniki_spearman(:,idx_model));
  66.     Wyniki_spearman_odch_std(idx_model,1) = std(Wyniki_spearman(:,idx_model),0);
  67.     Wyniki_kendall_mediana(idx_model,1) = median(Wyniki_kendall(:,idx_model));
  68.     Wyniki_kendall_odch_std(idx_model,1) = std(Wyniki_kendall(:,idx_model),0);
  69. end
  70.  
  71. %zapisanie wyników
  72. save('Wyniki_eksperymentow.mat', 'Wyniki_spearman', 'Wyniki_spearman_mediana', 'Wyniki_spearman_odch_std', 'Wyniki_kendall', 'Wyniki_kendall_mediana', 'Wyniki_kendall_odch_std');
  73.  
  74. %zwolnienie procesorów logicznych
  75. delete(gcp('nocreate'));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement