Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.35 KB | None | 0 0
  1. clear
  2. % suradnice x,y,z piatich skupin bodov
  3. load databody
  4.  
  5. % vykreslenie bodov podla skupin
  6. h=figure;
  7. plot3(data1(:,1),data1(:,2),data1(:,3),'b+')
  8. hold on
  9. plot3(data2(:,1),data2(:,2),data2(:,3),'co')
  10. plot3(data3(:,1),data3(:,2),data3(:,3),'g*')
  11. plot3(data4(:,1),data4(:,2),data4(:,3),'r*')
  12. plot3(data5(:,1),data5(:,2),data5(:,3),'mx')
  13.  
  14. axis([0 1 0 1 0 1])
  15. title('Data body')
  16. xlabel('x')
  17. ylabel('y')
  18. zlabel('z')
  19.  
  20. disp(' --------------- stlac klavesu --------------')
  21. pause
  22.  
  23. % vstupne a vystupne data na trenovanie neuronovej siete
  24. datainnet=[data1; data2; data3; data4; data5]';
  25. dataoutnet=[ones(1,50) zeros(1,200);zeros(1,50) ones(1,50) zeros(1,150); zeros(1,100) ones(1,50) zeros(1,100);  ...
  26.                zeros(1,150) ones(1,50) zeros(1,50);zeros(1,200) ones(1,50)];
  27.  
  28. % vytvorenie struktury siete
  29. pocet_neuronov=10;  % definujte pocet neuronov v skrytej vstve
  30. net = patternnet(pocet_neuronov);
  31.  
  32. % parametre rozdelenia dat na trenovanie, validacne a testovanie
  33. % definujte rozdelenie dat
  34. net.divideFcn='divideind';
  35. % net.divideParam.trainRatio=0.6;
  36. % net.divideParam.valRatio=0.2;
  37. % net.divideParam.testRatio=0.2;
  38. net.divideParam.trainInd=1:2:250;
  39. net.divideParam.valInd=2:4:250;
  40. net.divideParam.testInd=4:4:250;
  41.  
  42. % nastavenie parametrov trenovania
  43. % definujte parametre trenovania siete
  44. net.trainParam.goal = 1e-10;       % ukoncovacia podmienka na chybu.
  45. net.trainParam.show = 1;           % frekvencia zobrazovania chyby
  46. net.trainParam.epochs = 5000;        % maximalny pocet trenovacich epoch.
  47.  
  48. % trenovanie NS
  49. net = train(net,datainnet,dataoutnet);
  50.  
  51. % zobrazenie struktury siete
  52. view(net)
  53.  
  54. % simulacia vystupu NS pre trenovacie data
  55. % testovanie NS
  56. outnetsim = sim(net,datainnet);
  57.  
  58. % chyba NS a dat
  59. err=(outnetsim-dataoutnet);
  60.  
  61. % percento neuspesne klasifikovanych bodov
  62. % pouzit funkciu -> confusion
  63.  
  64. [a,b,c,d]=confusion(dataoutnet,outnetsim);
  65.  
  66. % kontingenčná matica
  67. figure
  68. % pouzit funkciu -> plotconfusion
  69. plotconfusion(dataoutnet,outnetsim);
  70.  
  71.  
  72. % klasifikacia 5 novych bodov do tried
  73. bodynew=[0.55 0.25 0.2;0.3 0.4 0.7;0.2 0.7 0.5;0.7 0.55 0.35;0.9 0.85 0.4];
  74. % pouzit funkcia -> sim , vec2ind
  75. outnetsim=sim(net,bodynew');
  76. indices=vec2ind(outnetsim);
  77.  
  78. figure(h)
  79. farby='bcgrm';
  80. for i=1:5
  81.     plot3(bodynew(i,1),bodynew(i,2),bodynew(i,3),farby(indices(i)),'MarkerSize',10,'LineWidth',2)  
  82. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement