1. Sa se implementeze algoritmul perceptron pentru clasificarea datelor provenite din doua clase si sa se realizeze un studiu comparativ privind performantele de recunoastere cu algoritmul de clasificare kmeans. Sa se puna in evidenta (grafic) procentele de corect clasificare obtinute atat pentru perceptron cat si pentru kmeans in cazurile in care datele au o repartitie normala si, respectiv, uniforma. %perceptron 1-neuron %2D input clf; %initializarea si antrenarea perceptronului P = [0.0 1.0 -0.5 0.0 ;1.0 0.3 -0.5 -1.0]; T = [1 1 0 0]; subplot(1,4,1); [W,b] = initp(P,T); [W,b,epochs,errors] = trainp(W,b,P,T,-1); plotpv(P,T); plotpc(W,b); %vectorii erorilor CPerceptron CKmeans CP=[]; CK=[]; for k=10:50:210 %data rapartizare uniform X=rand(1,k)-0.5; Y=rand(1,k)-0.5; %data rapartizare normal %X=randn(1,k)-0.5; %Y=randn(1,k)-0.5; %matricea cu date de test testData=[X;Y]; %simulare perceptron a = simup(testData,W,b) plotpv(testData,a); plotpc(W,b); %vectorul repartizarilor corect in clase corect=[]; for i=1:1:size(X,2) if((X(1,i)+Y(1,i))>0) corect=[corect; 1] else corect=[corect; 0] end end td=testData'; subplot(1,4,2); plot(td(corect==0,1),td(corect==0,2),'r.', td(corect==1,1),td(corect==1,2),'b.'); a = simup(testData,W,b); subplot(1,4,3); plotpv(testData,a); plotpc(W,b); %calcul erori perceptron cp=0; for i=1:1:size(a,2) if(double(a(1,i))~=corect(i,1)) cp=cp+1; end end disp(cp); CP=[CP cp]; %antrenare algoritm kmeans [cidx, ctrs] = kmeans(td, 2,'Start',[0.0 -1.0;1.0 0.3]); subplot(1,4,4); plot(td(cidx==1,1),td(cidx==1,2),'r.', td(cidx==2,1),td(cidx==2,2),'b.', ctrs(:,1),ctrs(:,2),'kx'); %calcul erori kmeans ck=0; for i=1:1:size(cidx,1) if(cidx(i,1)~=(corect(i,1)+1)) ck=ck+1; end end disp(ck); CK=[CK ck]; end bar([CP;CK],'group');
După plată vei primi prin email un cod de download pentru a descărca gratis oricare alt referat de pe site.Vezi detalii.