Advertisement
Guest User

Untitled

a guest
Dec 7th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. clearall
  2.  
  3. %xa1=randn(2,100);
  4. %xa2=randn(2,100)+2;
  5. %xa3=xa1;
  6. %xa3(2,:)=xa3(2,:)+4;
  7. %X=[xa1xa2xa3];
  8. X=[Data(:,1:2)'];
  9. %Y=[ones(1,100)2ones(1,100)3ones(1,100)];
  10. Y=Data(:,3);
  11. net=newsom(X,[13], 'gridtop' , 'linkdist');
  12. net=train(net,X);
  13. plot(X(1,:),X(2,:),'.');
  14. figure
  15. %plotsom(net.iw{1,1},net.layers{1}.distances);
  16. hold on
  17. d=dist(X',net.iw{1}');
  18. [a,b]=min(d,[],2);
  19. gscatter(X(1,:),X(2,:),b);
  20.  
  21. e=er(Y,b);
  22. [n m]=size(Data);
  23. w=zeros(2,3);
  24. x=zeros(1,3);
  25. for i = 1:n
  26. if(b(i)==1)
  27. w(1,1)=w(1,1)+X(1,i);
  28. w(2,1)=w(2,1)+X(2,i);
  29. x(1)=x(1)+1;
  30. elseif(b(i)==2)
  31. w(1,2)=w(1,2)+X(1,i);
  32. w(2,2)=w(2,2)+X(2,i);
  33. x(2)=x(2)+1;
  34. elseif(b(i)==3)
  35. w(1,3)=w(1,3)+X(1,i);
  36. w(2,3)=w(2,3)+X(2,i);
  37. x(3)=x(3)+1;
  38. end
  39. end
  40. w(:,1)=w(:,1)/x(1);
  41. w(:,2)=w(:,2)/x(2);
  42. w(:,3)=w(:,3)/x(3);
  43. plot(w(1,:),w(2,:),'.')
  44. %out=net.iw{1};
  45. %
  46. %[outinx]=sort(out,1,’ascend’);
  47. %figure
  48. %plotsom(out,net.layers{1}.distances);
  49.  
  50.  
  51. functionout=er(in1,in2)
  52. in1=in1';
  53. [nm]=size(in1);
  54. err=zeros(n,m);
  55. for i=1:n
  56. if(in1(i)~=in2(i))
  57. err(i)=1;
  58. end
  59. end
  60. out=sum(err)/n100;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement