|
|
我建立了rbf神经网络,并用来预测数据,但是预测曲线和原始的目标数据一模一样,一点误差都没有。经别人看看过后说是,我没有定义预测的数据,而且是把所有的数据都用来训练啦。我的要求是用以下数据的t_data数据中的前七组用来训练,最后两组用来做预测。本人是用来做毕业设计的。希望高手帮个忙,万分感激!! S. r% P" k. I
- f8 b7 Q9 d" @+ n% 聚丙烯/蒙脱土纳米复合材料的双指标性能的RBF预测模型! q7 b3 X: O5 i. n3 Y% h3 ]4 p( h# t
%t_data为原始数据,其中前三列是输入向量,后两列是输出的目标向量
8 |" z5 d |4 {t_data=[
. V7 u0 @+ e8 Q$ \+ a; i! o1 10 80 33.92 69.3% G- c; ]" x$ Z. S" m8 q V; I
1 20 100 34.49 34.7
% \& L: }& S, n1 30 50 34.38 18.7
/ d. o+ e& V; u9 t: o+ u3 10 50 33.44 21.3
8 n! `9 v( F0 R. P. r3 20 80 33.23 21.3- b9 g0 e3 h3 F8 X* R% K
3 30 100 33.58 20.0$ V6 ?$ _5 I* |$ q4 d3 i( a* V
5 10 100 31.89 20.03 b6 z8 t. H! x- y, l
5 20 50 29.51 25.36 s5 K. H( [* g6 R* @; ?- R1 r' u' w9 |
5 30 80 31.59 25.3];, { X: O/ h$ f/ g: z+ f( N
t_data=t_data';
, Y3 @7 f( _% c4 [tt1=t_data(4:5,:);
4 J3 r6 y1 c7 j, X% l. ^%t_data分别表示归一化后的向量
6 k% n8 r( r; ]for i=1:5
% l5 j A3 Q% s6 y, k: E6 T t_data(i,:)=(t_data(i,:)-min(t_data(i,:)))/(max(t_data(i,:))-min(t_data(i,:)));
* r, T8 y" O( lend
4 q' o+ D2 w& O; {+ f6 F) Ct_data=t_data';: N$ m( |5 L4 L
%初始化数据,tt为目标向量,x为输入向量
7 r2 F1 L. a5 |. K8 vtt=t_data(:,4:5);x=t_data(:,1:3);tt=tt';) Z, H+ W" y& b( m$ O" d
%随机选取中心
5 r, t: @3 C5 O2 x. D0 \0 e3 jc=x;, r# c9 `6 B7 g, I( a# `" q
%定义delta平方为样本各点的协方差之和3 j* H+ \3 e1 U. w) A+ u
delta=cov(x');+ M0 T& ?; |6 ?, O
delta=sum(delta);( D+ }% ]$ A: d; D, X# M% h" i
%隐含层输出R
4 X3 p; G, J) m* Dfor i=1:1:9
- O' w7 t4 u" ]! H for j=1:1:9
S0 \* Y$ b# W3 q( a R(i,j)=((x(i,:)-c(j,:)))*((x(i,:)-c(j,:))');0 Y; d- r' L9 q1 K1 M
R(i,j)=exp(-R(i,j)./delta(j));
4 v1 x+ q, y4 V' k end
/ B7 e9 W; S) x8 Eend
) }! r6 y* M) J6 j/ w1 C6 |%输入向量p0 {9 i7 p2 h7 C: \' o( |( a0 u
p=R;
+ h; _% y& U: \6 C ~. j%建立神经网络模型
3 s. k" l* I, ` V6 Q8 Ur=radbas(p);
1 l2 y7 j! M3 Z' \+ q! gerr_goal=0.001;0 i3 F5 R* m7 P/ M0 V" x
sc=3;& P4 H, D- x# D) S- e& \% q# [
net=newrb(p,tt,err_goal,sc,1000,1);
: n7 b& {9 B( y4 l0 S%测试
6 h% }: ]5 O' x" I( I5 Z9 Aty=sim(net,p);
( `4 U6 n! o0 ]4 H6 u) jtE=tt-ty;
; G* V: v% y1 G7 HtSSE=sse(tE);, |/ K) V. @+ I
tMSE=mse(tE);
" W% H- z: M+ r% n0 z' q- S; w3 ktt=tt1;& o; O8 c% E" a
ty1=ty(1,:)*(max(tt(1,:))-min(tt(1,:)))+min(tt(1,:));: Y6 L# D0 i: z+ ~+ T; A
ty2=ty(2,:)*(max(tt(2,:))-min(tt(2,:)))+min(tt(2,:));
+ a6 J; s( K! n1 W: s%预测(测试)曲线8 F, U* _; L/ g$ |% t/ ?5 J
figure;4 H/ t- l$ p! {
plot(tt(1,:),'-+');
' W6 K2 c' ^6 D* \) v ` hold on;
$ t, N% b1 x* f2 B7 O: r plot(ty1,'r:*');
3 ]" s9 d/ G( r9 e+ E legend('原始目标值','预测值');. k0 U" |. l( ?7 z4 C
title('拉伸强度的RBF网络模型预测结果输出曲线');
# j+ f6 c' R6 w1 d xlabel('输入样本点');
5 U" v* f& q% i' `+ Y- n: E ylabel('拉伸强度/Mpa');4 P- @4 `7 c" x y
hold off;1 u; G1 q! G) O- T0 Z+ ]' [8 p
figure;
& `- v2 C* W2 F7 s3 k1 p" e" S plot(tt(2,:),'-+');% a0 O: }! P. D9 b
hold on;
4 [! r+ m. a/ O s% i: ~# w plot(ty2,'r:o');6 R! X |: Q% M5 N# v8 S3 S
legend('原始目标值','预测值');
1 }0 f! ^# ]0 B( Y+ v3 {; u' _' h title('断裂伸长率的RBF网络模型预测结果输出曲线');4 }* a2 P2 x) C9 e/ N% d0 E- W
xlabel('输入样本点');- m8 [6 q+ M9 @
ylabel('断裂伸长率/%');1 l7 e' ~: J; R" r4 P( ]
hold off |
|