|
|
我建立了rbf神经网络,并用来预测数据,但是预测曲线和原始的目标数据一模一样,一点误差都没有。经别人看看过后说是,我没有定义预测的数据,而且是把所有的数据都用来训练啦。我的要求是用以下数据的t_data数据中的前七组用来训练,最后两组用来做预测。本人是用来做毕业设计的。希望高手帮个忙,万分感激!1 y+ g( C) z) M6 u% @
& ^) z! S, z& z& v" g* G% 聚丙烯/蒙脱土纳米复合材料的双指标性能的RBF预测模型
& J( b6 E! I; ]) X M* L%t_data为原始数据,其中前三列是输入向量,后两列是输出的目标向量$ W% V0 S( [; y9 ~, l" E5 N3 i
t_data=[8 [* P1 D1 h$ W" I$ k' S8 \
1 10 80 33.92 69.3
9 _& F$ @( Q/ P; @& M1 20 100 34.49 34.7 % F8 K7 p* g }0 `/ P
1 30 50 34.38 18.78 ?: r" b& E7 J
3 10 50 33.44 21.3) o% |9 Q# J+ ?' i
3 20 80 33.23 21.3
. ~$ @$ v3 Q- J7 H5 Y3 30 100 33.58 20.0
( J3 N2 H$ O6 u, B* @+ D5 Y5 10 100 31.89 20.0
& j5 R. A9 p. F d5 20 50 29.51 25.3
6 I1 z; [7 ~) p5 30 80 31.59 25.3];
2 w: s+ r$ t# at_data=t_data';
# \/ C n7 { d# {5 N+ H) \tt1=t_data(4:5,:); U3 E1 @( [; x
%t_data分别表示归一化后的向量. l3 K3 S& d) J7 m4 _
for i=1:5" I) ]( \5 T6 d$ C. Y$ o/ x0 z
t_data(i,:)=(t_data(i,:)-min(t_data(i,:)))/(max(t_data(i,:))-min(t_data(i,:)));
. X8 _" l' ]1 N" Uend0 X; r6 T& E$ E; T; r& o- V
t_data=t_data';
0 z8 D, H M, v2 J' ]%初始化数据,tt为目标向量,x为输入向量. p, o' v0 \2 Q% Q' T
tt=t_data(:,4:5);x=t_data(:,1:3);tt=tt';9 t- \6 f+ n+ ]7 Y7 Q4 C+ N
%随机选取中心& C1 Q& v' B9 a% T2 w9 z* |$ l
c=x;
5 g! d1 M' n0 ]: r1 q%定义delta平方为样本各点的协方差之和
7 a6 r3 | W- }+ b, D1 J& t- S& M6 bdelta=cov(x');, w7 z( G/ X' A$ o. I; p; R
delta=sum(delta);
% X; C( B; s* M1 Q( ]$ F8 @%隐含层输出R
: [, h4 M+ a- ~: ufor i=1:1:9
1 R( N- V4 @# U) T+ m8 ` for j=1:1:94 R5 @3 D( R. I6 U
R(i,j)=((x(i,:)-c(j,:)))*((x(i,:)-c(j,:))');
E& |+ n c: i+ A. |8 n R(i,j)=exp(-R(i,j)./delta(j));3 t5 z$ [* P6 E1 b8 g$ v1 {
end. t! h% M( o" d" P* R
end7 V+ _& X' i6 \* z. T3 r0 ?) t6 u
%输入向量p5 p$ m( L) Q3 ~/ N% e' ?( F
p=R;/ t. R- f7 J( h7 ?
%建立神经网络模型
- A* C" h( p2 J9 f0 Q8 |r=radbas(p);
* L! E8 m1 x4 F% ?) d" h2 Lerr_goal=0.001;# a4 ^8 h U3 B
sc=3;
, k- T: E9 d% anet=newrb(p,tt,err_goal,sc,1000,1); L) @) R& x9 F2 k6 y H1 j
%测试7 m, }) t/ [1 W; X1 ?5 r0 T* C
ty=sim(net,p);
& {1 n& _! M2 _3 @% o3 B" ?tE=tt-ty;
) {% Y) S, U# [- q. r2 B( g6 ctSSE=sse(tE);! b: ?- w) s) x. B( o+ s( d
tMSE=mse(tE);$ Q' L& L1 a+ ]! ~) b% x
tt=tt1;
% V& p1 p# H8 v/ |& uty1=ty(1,:)*(max(tt(1,:))-min(tt(1,:)))+min(tt(1,:));3 `* H& @& a0 y3 d5 F: V1 B, _
ty2=ty(2,:)*(max(tt(2,:))-min(tt(2,:)))+min(tt(2,:));
: ]1 z, Y& R4 S Z%预测(测试)曲线
0 R) S7 L. Z8 Z$ q* ofigure;+ }7 K! _9 V6 K
plot(tt(1,:),'-+'); Z1 C8 S% F8 v; w6 X
hold on;! W8 t, p0 \) X D
plot(ty1,'r:*');
# ^" j8 e ?8 B$ i: g4 v4 r& D' } legend('原始目标值','预测值'); `2 I4 M' O3 F6 C
title('拉伸强度的RBF网络模型预测结果输出曲线');
8 P: d; S$ t" u. V8 {7 t4 r xlabel('输入样本点');
8 K9 j& ]' Z9 } ylabel('拉伸强度/Mpa');. ]$ C) X! @3 Z2 K$ D
hold off;
3 G& ^0 [; Y8 V. B figure;
8 @' F, |% L& w1 ` plot(tt(2,:),'-+');
- A- E- T. O6 \9 ~1 Z; Z' F hold on;6 C5 C" R) |9 g1 W( `
plot(ty2,'r:o');( K1 R+ d# O1 P, e
legend('原始目标值','预测值');3 K4 Q4 c) U4 T: Q$ H2 B* d; A: J
title('断裂伸长率的RBF网络模型预测结果输出曲线');# p- C o8 R- b8 l( A
xlabel('输入样本点');
% h7 x6 ~0 G& P5 ?% ^9 G; h# _: y ylabel('断裂伸长率/%');
/ c$ z2 C( k6 k" {& j" N. X# v9 C hold off |
|