Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear
- % suradnice x,y,z piatich skupin bodov
- load databody
- % vykreslenie bodov podla skupin
- h=figure;
- plot3(data1(:,1),data1(:,2),data1(:,3),'b+')
- hold on
- plot3(data2(:,1),data2(:,2),data2(:,3),'co')
- plot3(data3(:,1),data3(:,2),data3(:,3),'g*')
- plot3(data4(:,1),data4(:,2),data4(:,3),'r*')
- plot3(data5(:,1),data5(:,2),data5(:,3),'mx')
- axis([0 1 0 1 0 1])
- title('Data body')
- xlabel('x')
- ylabel('y')
- zlabel('z')
- disp(' --------------- stlac klavesu --------------')
- pause
- % vstupne a vystupne data na trenovanie neuronovej siete
- datainnet=[data1; data2; data3; data4; data5]';
- 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); ...
- zeros(1,150) ones(1,50) zeros(1,50);zeros(1,200) ones(1,50)];
- % vytvorenie struktury siete
- pocet_neuronov=10; % definujte pocet neuronov v skrytej vstve
- net = patternnet(pocet_neuronov);
- % parametre rozdelenia dat na trenovanie, validacne a testovanie
- % definujte rozdelenie dat
- net.divideFcn='divideind';
- % net.divideParam.trainRatio=0.6;
- % net.divideParam.valRatio=0.2;
- % net.divideParam.testRatio=0.2;
- net.divideParam.trainInd=1:2:250;
- net.divideParam.valInd=2:4:250;
- net.divideParam.testInd=4:4:250;
- % nastavenie parametrov trenovania
- % definujte parametre trenovania siete
- net.trainParam.goal = 1e-10; % ukoncovacia podmienka na chybu.
- net.trainParam.show = 1; % frekvencia zobrazovania chyby
- net.trainParam.epochs = 5000; % maximalny pocet trenovacich epoch.
- % trenovanie NS
- net = train(net,datainnet,dataoutnet);
- % zobrazenie struktury siete
- view(net)
- % simulacia vystupu NS pre trenovacie data
- % testovanie NS
- outnetsim = sim(net,datainnet);
- % chyba NS a dat
- err=(outnetsim-dataoutnet);
- % percento neuspesne klasifikovanych bodov
- % pouzit funkciu -> confusion
- [a,b,c,d]=confusion(dataoutnet,outnetsim);
- % kontingenčná matica
- figure
- % pouzit funkciu -> plotconfusion
- plotconfusion(dataoutnet,outnetsim);
- % klasifikacia 5 novych bodov do tried
- 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];
- % pouzit funkcia -> sim , vec2ind
- outnetsim=sim(net,bodynew');
- indices=vec2ind(outnetsim);
- figure(h)
- farby='bcgrm';
- for i=1:5
- plot3(bodynew(i,1),bodynew(i,2),bodynew(i,3),farby(indices(i)),'MarkerSize',10,'LineWidth',2)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement