24小时热门版块排行榜    

CyRhmU.jpeg
查看: 739  |  回复: 2

ljf2000

铁虫 (著名写手)

天山脚下大漠之巅的浪子

[求助] 谁帮我看看这个错在哪里了?

Sample Text说明
用matlab编BP神经网络预测程序
原始数据如下: 年 份 1(1988) 2(1989) 3(1990) 4(1991) 5(1992) 6(1993) 7(1994) 8(1995) 9(1996) 10(1997) 11(1998) 12(1999) 13(2000) 14(2001) 15(2002) 16(2003) 实际值 (ERI) 0.1093 0.1110 0.1127 0.1141 0.1154 0.1164 0.1171 0.1175 0.1178 0.1179 0.1179 0.1179 0.1179 0.1180 0.1182 0.1185
BP 神经网络的训练过程为: 先用1988 年到2002 年的指标历史数据作为网络的输入,用1989 年到2003 年的指标历史数据作为网络的输出,组成训练集对网络进行训练,使之误差达到满意的程度,用这样训练好的网络进行预测. 采用滚动预测方法进行预测:滚动预测方法是通过一组历史数据预测未来某一时刻的值,然后把这一预测数据再视为历史数据继续预测下去,依次循环进行,逐步预 测未来一段时期的值. 用1989 年到2003 年数据作为网络的输入,2004 年的预测值作为网络的输出. 接着用1990 年到2004 年的数据作为网络的输入,2005 年的预测值作为网络的输出.依次类推,这样就得到2010 年的预测值。 目前在BP 网络的应用中,多采用三层结构. 根据人工神经网络定理可知,只要用三层的BP 网络就可实现任意函数的逼近. 所以训练结果采用三层BP模型进行模拟预测. 模型训练误差为0.00001,隐层单元数选取8个,学习速率为0.05,动态参数0.6,Sigmoid参数0.9,最大迭代次数3000.运行 3000次后,样本拟合误差等于0.00021。
Contents
•        源程序如下
•        清空工作空间
•        原始数据录入
•        程序代码
源程序如下
清空工作空间
clear
clc
原始数据录入
P=[0.1093 0.1110 0.1127 0.1141 0.1154 0.1164 0.1171 0.1175  0.1178 0.1179 0.1179 0.1179 0.1179 0.1180 0.1182];%输入1988-2002年历史数据
T=[0.1110 0.1127 0.1141 0.1154 0.1164 0.1171 0.1175  0.1178 0.1179 0.1179 0.1179 0.1179 0.1180 0.1182 0.1185];%输出1989-2003年历史数据
程序代码
创建一个新的前向神经网络
net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm')

%  当前输入层权值和阈值
inputWeights=net_1.IW{1,1}
inputbias=net_1.b{1}
%  当前网络层权值和阈值
layerWeights=net_1.LW{2,1}
layerbias=net_1.b{2}

%  设置训练参数
net_1.trainParam.show = 50;
net_1.trainParam.lr = 0.05;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-3;

%  调用 TRAINGDM 算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);

%  对 BP 网络进行仿真
A = sim(net_1,P);
%  计算仿真误差
E = T - A;
MSE=mse(E)

P=[]';%测试
sim(net_1,P)

% Published with MATLAB® 7.10

运行后,提示:
??? Error using ==> network.sim at 178
Inputs are incorrectly sized for network.
Matrix must have 1 rows.

[ Last edited by ljf2000 on 2012-1-16 at 12:16 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

浪子
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zxfirst

新虫 (小有名气)

计算机视觉算法

【答案】应助回帖


感谢参与,应助指数 +1
jjdg(金币+1): 感谢参与 2012-01-17 10:07:32
看错误是矩阵大小不同,你单步运行到sim那儿看看,到底死怎么回事。
2楼2012-01-16 19:28:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
xzhdty: 不要简单头像,如果懂得就应助 2012-01-17 20:52:16
3楼2012-01-17 13:20:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ljf2000 的主题更新
信息提示
请填处理意见