vecpe

Linearna regresija rijeka v2

Feb 8th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.58 KB | None | 0 0
  1. % 1. Eksperimentalni zadaci: Linearna regresija
  2. clear; clc; close all;
  3. load('housing.mat');
  4.  
  5. %% klasicna Linearna regresija
  6. % treniranje linearne regresije (train set)
  7. Xtrain1 = addone(Xtrain); Xtest1 = addone(Xtest); X1 = addone(X);
  8.  
  9. w = pinv(Xtrain1) * ytrain;
  10. % testiranje na testnom skupu
  11. tocnost_modela = mean(((ytest - Xtest1*w).^2))/2;
  12. disp(['Tocnost predikcije modela: ', num2str(tocnost_modela)]);
  13.  
  14. % prikazinje podataka testiranja
  15. plot(X, y, 'rx', 'MarkerSize', 10, 'LineWidth', 1.5);
  16. xlabel('naziv var (x)');
  17. ylabel('procijenjena vrijesnot(y)');
  18. hold on;
  19. plot(X, X1*w, 'bx', 'LineWidth', 2)
  20. hold off;
  21.  
  22.  
  23. %% utjecaj normalizacije
  24. % normalizacija podataka (samo train skupa kako ne bi sprijecili curenje
  25. % ingformacija.)
  26. Xtrain_std = normalize(Xtrain,mean(Xtrain),std(Xtrain));
  27. % standardizacija se obavlja i na testnom skupu podataka, al sa jednakim
  28. % srednjim vrijednostima kao kod testiranja
  29. Xtest_std  = normalize(Xtest ,mean(Xtrain),std(Xtrain));
  30. X_std      = normalize(X     ,mean(Xtrain),std(Xtrain));
  31.  
  32. Xtrain_std1 = addone(Xtrain_std); Xtest_std1 = addone(Xtest_std); X_std1 = addone(X_std);
  33.  
  34. % treniranje linearne regresije (train set)
  35. w_std = pinv(Xtrain_std1) * ytrain;
  36. % testiranje na testnom skupu
  37. tocnost_modela_std = mean(((ytest - Xtest_std1*w_std).^2))/2;
  38. disp(['Tocnost predikcije modela: ', num2str(tocnost_modela_std)]);
  39.  
  40. % prikazinje podataka testiranja
  41. plot(X_std, y, 'rx', 'MarkerSize', 10, 'LineWidth', 1.5);
  42. xlabel('naziv var (x)');
  43. ylabel('procijenjena vrijesnot(y)');
  44. hold on;
  45. plot(X_std, X_std1*w_std, 'bx', 'LineWidth', 2)
  46. hold off;
Add Comment
Please, Sign In to add comment