|
|
我建立了rbf神经网络,并用来预测数据,但是预测曲线和原始的目标数据一模一样,一点误差都没有。经别人看看过后说是,我没有定义预测的数据,而且是把所有的数据都用来训练啦。我的要求是用以下数据的t_data数据中的前七组用来训练,最后两组用来做预测。本人是用来做毕业设计的。希望高手帮个忙,万分感激!
. V0 I. Z1 _* b4 k7 L3 d9 H9 c# p8 O: c2 [5 Z
% 聚丙烯/蒙脱土纳米复合材料的双指标性能的RBF预测模型; m9 a& ?- F3 E3 G& y
%t_data为原始数据,其中前三列是输入向量,后两列是输出的目标向量8 `: G# ]/ Z9 B7 `9 c
t_data=[, f6 _+ A+ B$ o; W* v
1 10 80 33.92 69.35 C6 k" Z' Y+ S4 c2 A
1 20 100 34.49 34.7 9 u* b. R8 h0 d* }
1 30 50 34.38 18.7! K' h3 G! L9 l7 {1 U1 E
3 10 50 33.44 21.3
- v0 H; m$ s% v9 ~9 @/ X3 20 80 33.23 21.37 \! v# p' C8 Q
3 30 100 33.58 20.0- m- x4 R8 Y0 q9 h
5 10 100 31.89 20.0
* X6 ? K# K% o( d1 `" F7 o5 K4 d( v5 20 50 29.51 25.3
0 [9 e0 ` \' C5 l! V! r7 w5 30 80 31.59 25.3];
/ |# w" `: q! ~6 r7 F, Nt_data=t_data';5 {; Y, P) b+ K4 Y; p
tt1=t_data(4:5,:);
3 _% Y5 k' m# N2 O! m( W%t_data分别表示归一化后的向量
0 P. T2 f, w' w: r/ M4 S+ H# vfor i=1:52 _4 C a" X4 M# G. a
t_data(i,:)=(t_data(i,:)-min(t_data(i,:)))/(max(t_data(i,:))-min(t_data(i,:)));+ [" e4 a% N3 j
end
. S/ ?/ v# y( ht_data=t_data';: P" I6 k" t. ?8 u* B1 `/ B
%初始化数据,tt为目标向量,x为输入向量/ N/ ^0 u/ N- |+ K4 k2 X
tt=t_data(:,4:5);x=t_data(:,1:3);tt=tt';3 l, @% X2 t& W5 q
%随机选取中心. w, c, _% H; N4 B
c=x;* |5 B! H* [% I" Y( ?
%定义delta平方为样本各点的协方差之和2 U: Z2 a- s0 l- K& f3 }9 i; S
delta=cov(x');
7 o f; T p5 J$ l: s. k. {1 fdelta=sum(delta);$ O- j" B# l; d
%隐含层输出R
: a2 [6 Z5 P. r8 ]3 j" P; Zfor i=1:1:9
) e* q/ @9 x! x ^- H for j=1:1:9' j! I4 S* V# T/ P# a
R(i,j)=((x(i,:)-c(j,:)))*((x(i,:)-c(j,:))');
' F5 P! K. K3 L3 N2 M- H4 `, A1 c R(i,j)=exp(-R(i,j)./delta(j));
% A0 f+ j( }! L% o: \9 D J) @) n8 B end" B; D7 [/ u" ]. S
end% j8 S x4 `; |: b
%输入向量p
8 s( j6 f3 [7 O0 pp=R;
. S# h- G0 u# {8 x9 h3 A%建立神经网络模型
% v7 q9 `3 s# j. U1 _9 o, I, t- zr=radbas(p);9 s) u8 p+ E/ Q3 T. W- q, R' ~- A
err_goal=0.001;# S1 e% k- V* G) r- E8 i% V ]4 Q
sc=3;" n3 M% g6 B* e& L4 @' T
net=newrb(p,tt,err_goal,sc,1000,1);& I p. Z6 L* L C7 k* g5 A
%测试
* E, y6 O0 @9 bty=sim(net,p);; Z: W7 Q) f5 E$ m+ D* x0 t; q
tE=tt-ty;
" K$ i/ ~! W% C# ], l! ztSSE=sse(tE);
$ z4 n5 y& D" p2 J( TtMSE=mse(tE);" P/ z g# M( J! n9 t9 `
tt=tt1;
& A1 R# ^$ s4 k6 Ety1=ty(1,:)*(max(tt(1,:))-min(tt(1,:)))+min(tt(1,:));" r0 u& ~5 @7 J2 U
ty2=ty(2,:)*(max(tt(2,:))-min(tt(2,:)))+min(tt(2,:));
6 \0 L; L2 K {' H" Z, t%预测(测试)曲线, U. k9 x5 ]" C+ U7 \: f' A+ a
figure;
( S/ u$ ^8 W! h& I" P0 t% j plot(tt(1,:),'-+');
8 M) ?; k' Y; o0 Z! f; F hold on;1 ^! O5 ]/ C4 v. p' |5 S( t, e
plot(ty1,'r:*');
/ H% x8 B8 s6 U legend('原始目标值','预测值');6 x" D" V4 y( [( Z1 [7 z
title('拉伸强度的RBF网络模型预测结果输出曲线');; A' u, L1 r9 C c7 B
xlabel('输入样本点');
* G( ?, T- ^3 M7 w6 C: h ylabel('拉伸强度/Mpa');+ \' D% J! o* u; }' A' t
hold off;& I5 _, g6 r/ b$ p0 A( @( ]
figure;1 ?) u) j3 V% y" o8 K/ ]0 O) ~8 T/ \
plot(tt(2,:),'-+');
: D+ q" L8 r5 g% R1 ^0 B hold on;
7 D- T( k4 [; Q plot(ty2,'r:o');
# j; A) n6 U5 G1 A# a2 w! g legend('原始目标值','预测值');* A( I% c# L( f9 B
title('断裂伸长率的RBF网络模型预测结果输出曲线');
0 t1 e( b) i3 H& p. p: U% B) L xlabel('输入样本点');. E- S; d' y+ [; q% W+ Q
ylabel('断裂伸长率/%');- f, y+ |- p# C8 z4 A" f
hold off |
|