工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 2001|回复: 0

急救:rbf神经网络预测模型,请高手帮忙修改程序

[复制链接]
发表于 2010-5-27 10:08 | 显示全部楼层 |阅读模式
我建立了rbf神经网络,并用来预测数据,但是预测曲线和原始的目标数据一模一样,一点误差都没有。经别人看看过后说是,我没有定义预测的数据,而且是把所有的数据都用来训练啦。我的要求是用以下数据的t_data数据中的前七组用来训练,最后两组用来做预测。本人是用来做毕业设计的。希望高手帮个忙,万分感激!
%  聚丙烯/蒙脱土纳米复合材料的双指标性能的RBF预测模型
%t_data为原始数据,其中前三列是输入向量,后两列是输出的目标向量
t_data=[
1 10 80 33.92 69.3
1 20 100 34.49 34.7
1 30 50 34.38 18.7
3 10 50 33.44 21.3
3 20 80 33.23 21.3
3 30 100 33.58 20.0
5 10 100 31.89 20.0
5 20 50 29.51 25.3
5 30 80 31.59 25.3];
t_data=t_data';
tt1=t_data(4:5,:);
%t_data分别表示归一化后的向量
for i=1:5
    t_data(i,:)=(t_data(i,:)-min(t_data(i,:)))/(max(t_data(i,:))-min(t_data(i,:)));
end
t_data=t_data';
%初始化数据,tt为目标向量,x为输入向量
tt=t_data(:,4:5);x=t_data(:,1:3);tt=tt';
%随机选取中心
c=x;
%定义delta平方为样本各点的协方差之和
delta=cov(x');
delta=sum(delta);
%隐含层输出R
for i=1:1:9
  for j=1:1:9
     R(i,j)=((x(i,:)-c(j,:)))*((x(i,:)-c(j,:))');
     R(i,j)=exp(-R(i,j)./delta(j));
  end
end
%输入向量p
p=R;
%建立神经网络模型
r=radbas(p);
err_goal=0.001;
sc=3;
net=newrb(p,tt,err_goal,sc,1000,1);
%测试
ty=sim(net,p);
tE=tt-ty;
tSSE=sse(tE);
tMSE=mse(tE);
tt=tt1;
ty1=ty(1,:)*(max(tt(1,:))-min(tt(1,:)))+min(tt(1,:));
ty2=ty(2,:)*(max(tt(2,:))-min(tt(2,:)))+min(tt(2,:));
%预测(测试)曲线
figure;
plot(tt(1,:),'-+');
hold on;
plot(ty1,'r:*');
legend('原始目标值','预测值');
title('拉伸强度的RBF网络模型预测结果输出曲线');
xlabel('输入样本点');
ylabel('拉伸强度/Mpa');
hold off;
figure;
plot(tt(2,:),'-+');
hold on;
plot(ty2,'r:o');
legend('原始目标值','预测值');
title('断裂伸长率的RBF网络模型预测结果输出曲线');
xlabel('输入样本点');
ylabel('断裂伸长率/%');
hold off
您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-5-1 07:01

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表