通过matlab进行RBF分类

时间:2015-11-29 15:17:46

标签: matlab classification

我想在matlab中通过RBF对3个类别中的16个不同数据进行分类。我编写了这段代码,但我认为它对新数据无效。

Inp=[1 2 .1 2 .2 3 .1 1.5 .5 1.6 2 2.5 3 3 3.5 3.5;
 .1 .2 .3 .3 .4 .4 .5 .5 .6 .7 .6 .7 .6 .75 .8 .55];

Out=[1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0;
  0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0;
  0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1];
figure(1); hold on
 for itt=1:length(Inp)
   if Out(1,itt)==1
     plot(Inp(1,itt),Inp(2,itt),'ro','MarkerFace','r','MarkerSize',10);
   elseif Out(2,itt)==1
     plot(Inp(1,itt),Inp(2,itt),'k^','MarkerFace','g','MarkerSize',10);
   elseif Out(3,itt)==1
    plot(Inp(1,itt),Inp(2,itt),'bs','MarkerFace','c','MarkerSize',10);
   end
end

xlim([0 4])
ylim([0 1])
text(.5,.5,'Fighter')
text(3.5,.1,'Bomber')
text(3.5,.9,'Passenger')
 net=newrb(Inp,Out)

例如

B=[1;.1]
C=sim(net,B)
C =
1.0000
0.0000
-0.0000

并且它正确训练但是对于这个新输入无法正确分类

B=[3.5;.1]
C=sim(net,B)
C =

6.2763
0.2457
-5.5220

虽然我认为它应该像以前一样回答并在Bomber类别中进行分类。请帮帮我。

0 个答案:

没有答案