我想在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类别中进行分类。请帮帮我。