Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. % Klasyfikacja punktow(obrazow) lezacych z jednej strony krzywej - granicy decyzyjnej:
  2. %
  3. %      klasa 0
  4. %
  5. %                  (3,3) o-------------------------------------
  6. %                         \  
  7. %                          \
  8. %                           \
  9. % ---------------------------o (4,1)
  10. %                              
  11. %      klasa 1
  12. %        
  13. %
  14.  
  15.  
  16. % METODA ANALITYCZNA
  17.  
  18. % net = newff([-1 1; -1 1], [2 1],{'hardlim', 'hardlim'});
  19. %
  20. % net.IW{1} = [1 -1;-1 1]                % wagi od wejsc do pierwszej warstwy
  21. % net.LW{2,1} = [1 1]              % wagi od pierwszej do drugiej warstwy
  22. % % net.LW{3,2} = ...            % byc moze przydadza sie wagi od drugiej do trzeciej warstwy
  23. % net.b{1} = [-0.5 ;-0.5];                 % wartosci progowe neuronow pierwszej warstwy
  24. % net.b{2} = -0.5;
  25. % % net.b{3} = ...          
  26. %
  27. % [X,Y] = meshgrid(0:0.1:6);    
  28. % ZA = X;
  29. % ZA(:) = sim(net,[X(:) Y(:)]');
  30. % surf(X,Y,ZA);
  31. % title('Klasyfikacja punktow metoda analityczna')
  32.  
  33. % UCZENIE
  34.  
  35. % obrazy 2-wymiarowe (w kolumnach) i ich klasy  (należy podać maksymalnie 30 obrazów uczących,
  36. % pozwalających (wraz z odpowiednią architekturą sieci i jej parametrami) na jak najwierniejsze odwzorowanie
  37. % zadanej funkcji klasyfikacji gdy x i y sa z przedzialu <0,6>):
  38. % obrazy = ...
  39. % klasy = ...
  40. %
  41. % net = newff(...);
  42. %
  43. % ............................
  44. %    
  45. % [X,Y] = meshgrid(0:0.1:6);
  46. % ZU = X;
  47. % ZU(:) = sim(net,[X(:) Y(:)]');
  48. % surf(X,Y,ZU);
  49. % title('Klasyfikacja punktow metoda uczenia')
  50. % Wygenerowanie punktów
  51. x1 = rand(1, 80) * 6;
  52. x2 = rand(1, 80) * 6;
  53. obrazy = [x1; x2];
  54. klasy = (obrazy(1,:) > 2) .* (obrazy(1,:) < 6) .* (obrazy(2,:) > 3) .* (obrazy(2,:) < 7 );
  55. ind1 = find(klasy == 0);
  56. ind2 = find(klasy == 1);
  57.  
  58. net = newff([-1 1; -1 1], [2 1],{'hardlim', 'hardlim'});
  59.  
  60. net.IW{1} = [1 -1;-1 1]                % wagi od wejsc do pierwszej warstwy
  61. net.LW{2,1} = [1 1]              % wagi od pierwszej do drugiej warstwy
  62. % net.LW{3,2} = ...            % byc moze przydadza sie wagi od drugiej do trzeciej warstwy
  63. net.b{1} = [-0.5 ;-0.5];                 % wartosci progowe neuronow pierwszej warstwy
  64. net.b{2} = -0.5;
  65. % net.b{3} = ...    
  66.  
  67. % Narysowanie wykresu
  68. [X,Y] = meshgrid(0 : 0.1 : 8);
  69. Z = X;
  70. Z(:) = sim(net, [X(:) Y(:)]');
  71. contour(X,Y,Z,[0.499 0.5 0.501]);
  72. hold on
  73. plot(x1(ind1),x2(ind1),'bo',x1(ind2),x2(ind2),'rs')
  74. hold off
  75.  
  76.  
  77. % srednia roznica pomiedzy funkcja klasyfikacji uzyskana analitycznie i metoda
  78. % uczenia:
  79. disp(sprintf('srednia roznica pomiedzy funkcja uzyskana analitycznie i met. uczenia = %f',mean(mean(abs(ZU-ZA)))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement