Advertisement
Guest User

klasifikuj body.m

a guest
Mar 21st, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.38 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. % vstupne a vystupne data na trenovanie neuronovej siete
  21. datainnet=[data1; data2; data3; data4; data5]';
  22. 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);  ...
  23.                zeros(1,150) ones(1,50) zeros(1,50);zeros(1,200) ones(1,50)];
  24.  
  25. % vytvorenie struktury siete
  26. pocet_neuronov=30;  % definujte pocet neuronov v skrytej vstve
  27. net = patternnet(pocet_neuronov);
  28.  
  29. % parametre rozdelenia dat na trenovanie, validacne a testovanie
  30. % definujte rozdelenie dat
  31. net.divideFcn='divideind';
  32. % net.divideParam.trainRatio=0.6;
  33. % net.divideParam.valRatio=0.2;
  34. % net.divideParam.testRatio=0.2;
  35. net.divideParam.trainInd=1:2:250;
  36. net.divideParam.valInd=2:4:250;
  37. net.divideParam.testInd=4:4:250;
  38.  
  39. % nastavenie parametrov trenovania
  40. % definujte parametre trenovania siete
  41. net.trainParam.goal = 1e-20;       % ukoncovacia podmienka na chybu.
  42. net.trainParam.show = 10;           % frekvencia zobrazovania chyby
  43. net.trainParam.epochs = 1000;        % maximalny pocet trenovacich epoch.
  44. net.trainParam.max_fail = 200;
  45. net.trainParam.min_grad = 1e-16;
  46. % trenovanie NS
  47. for i=1:5
  48. net = train(net,datainnet,dataoutnet);
  49. end
  50. % zobrazenie struktury siete
  51. view(net)
  52.  
  53. % simulacia vystupu NS pre trenovacie data
  54. % testovanie NS
  55. outnetsim = sim(net,datainnet);
  56.  
  57. % chyba NS a dat
  58. err=(outnetsim-dataoutnet);
  59.  
  60. % percento neuspesne klasifikovanych bodov
  61. % pouzit funkciu -> confusion
  62.  
  63. [a,b,c,d]=confusion(dataoutnet,outnetsim);
  64.  
  65. % kontingenčná matica
  66. figure
  67. % pouzit funkciu -> plotconfusion
  68. plotconfusion(dataoutnet,outnetsim);
  69.  
  70.  
  71. % klasifikacia 5 novych bodov do tried
  72. 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];
  73. % pouzit funkcia -> sim , vec2ind
  74. outnetsim=sim(net,bodynew');
  75. indices=vec2ind(outnetsim);
  76.  
  77. figure(h)
  78. farby='bcgrm';
  79. for i=1:5
  80.     plot3(bodynew(i,1),bodynew(i,2),bodynew(i,3),[num2str(farby(indices(i))),'X'],'MarkerSize',10,'LineWidth',2)  
  81. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement