第12章 神经网络预测法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
正切S形函数(tansig)
1 e x f ( x) x 1 e
输出层的是线性函数,用purelin表示
3.模拟过程 网络通过对已知信息的反复学习训练,运用根据误差 来逐步调整与改变神经元连接权重和神经元阈值的方 法,使得相似的输入有相似的输出,从而达到处理信 息、模拟输入输出关系的目的。
2.创建网络 (1)newff函数:用来建立一个前馈BP网络 格式:net=newff(PR,SN,TF,BTF,BLF,PF); 说明:PR:表示由每组输入(共P组)元素的最大值和最小值 组成的P×2维矩阵;或用函数minmax(P)表示; SN:表示网络隐含层和输出层神经元的个数; TF:表示网络隐含层和输出层的传递函数,tansig(默认), logsig,purelin; BTF:表示网络的训练函数。普通训练traingdm:需设定 学习速率、动量系数,快速训练trainlm(默认): BLF:表示网络权值学习函数,learngdf(默认); PF:表示网络性能函数,mse(默认),网络输出和目标输出的 均方误差。
889.37 2367.77 1439.08
1845.97
1201.37 2486.77 2060.52
402.54
230.72 431.14 487.32
237.07
192.76 299.86 318.99
北京市房地产开发投资及销售额增长率
日期 2000 2001 2002 2003 2004
国内贷款 0.3684 0.3541
3.设定参数 net=init(net);初始化网络权值和阈值(可不设定) net.trainparam.show=训练状态的显示幅度;(默认25) net.trainparam.lr=学习速率;(权值阈值的调整幅度) net.trainparam.mc=动量系数;(权阈值改变的重复度) net.trainparam.epochs=训练次数;(默认100) net.trainparam.goal=误差精度;(默认0) net.trainparam.time=训练秒数;(可不选)
案例二: 中空保温玻璃的销售预测 MATLAB程序如下: clear p=[0.5677 -0.2435 -0.5839 0.2616 0.1754 1.0756 0.2983 -0.0679 0.7336 0.0965 -0.3516 0.6908 0.3185 0.8940 -0.0233 0.4722 0.9227 0.8708 -0.0675 0.3464 0.2965 0.1267 0.1315 0.3773 -0.4295 -0.5566 -0.2069 0.7275 0.6252 0.4419 -0.1880 0.1225 0.0618]'; t=[0.3684 0.3541 0.1176 0.4274 -0.0649 0.2077 0.2175 0.2340 -0.1785 0.9792 -0.4979];
首页
格式:[P,T]=postmnmx(Pn,minp,maxp,Tn,mint,maxt) 说明:Postmnmx函数可将premnmx函数所归一化数据进行反 归一化处理 P=0.5*(Pn+1)*(maxp-minp)+minp T=0.5*(Tn+1)*(maxt-mint)+mint 将输入数据或目标数据转化为区间[0,1]的归一化处理公式为: Pn=(P-minp)/(maxp-minp) Tn=(T-mint)/(maxt-mint) 其对应的反归一化处理公式 P=Pn*(maxp-minp)+ minp T=Tn*(maxt-mint)+ mint
-0.0679
-0.3516 0.8940 0.9227 0.3464 0.1315 -0.5566 0.6252 0.1225
0.7336
0.6908 -0.0233 0.8708 0.2965 0.3773 -0.2069 0.4419 0.0618
2005
2006 2007 2008 2009 2010
382.77
586.86 549.96 676.92 841.42
716.53
789.16 1085.11 1739.94 1626.30
57.68
40.58 99.21 249.62 352.94
25.95
51.78 50.59 120.85 162.56
2007
2008 2009 2010
1063.21
(4.训练网络: 格式:[net,tr]=train(net,P,T) 说明:P为输入样本矢量集;T为对应的目标样本矢量集: 等号左右两侧的net分别用于表示训练得到和训练以前的神 经网络对象;tr存储训练过程中的步数信息和误差信息,并 给出网络误差实时变化曲线。
5.BP神经网络的仿真 格式:[Y,Pf,Af,E,perf]=sim(net,P,Pi,Ai,T) 说明:输入net为神经网络对象,P为网络输入,Pi为 输入延迟的初始状态,Ai为层延迟的初始状态,T为 目标矢量,Y为网络输出,Pf为训练终止时的输入延 迟状态,Af为训练终止时的层延迟状态,E为输出和 目标矢量之间的误差,perf为网络性能值。 6.模拟输出 图形输出:plot(横坐标,纵坐标,‘参数’) 查看参数:权值:net.IW(层序号) 阈值:net.b(层序号)
12.1.2 BP神经网络的基本原理
BP(Back-Propagation Network) 是一种多层网络的“逆 推”学习算法。其基本思想是: 学习过程由信号的正向传播与误差的反向传播组成。 正向传播时,输入样本从输入层传入,经隐层逐层处理 后传向输出层。若输出层的实际输出与期望输出不符,则转 向误差的反向传播阶段。 误差的反向传播是将输出误差以某种形势通过隐层向输 入层逐层反传,并将误差分摊给各层的所有单元,从而获得 各层单元的误差信号,此误差信号即作为修正各单元权值的 依据。 这种信号正向传播与误差反向传播的各层权值调整过程 是周而复始地进行。权值不断调整的过程,也就是网络的学 习训练过程。此过程一直进行到网络输出的误差减少到可以 接受的程度,或进行到预订的设定的学习次数为止。
北京市房地产开发投资及销售原始数据
日期 1999 2000 2001 国内贷款 165.22 238.82 340.30 住宅销售额 232.02 409.34 531.71 办公楼销售额 66.08 51.80 61.73 商业营业用房销售 额 7.62 4.25 12.46
2002
2003 2004 2005 2006
(1)读入样本、设定初始权值和阈值; (2)设定参数; (3)计算隐含层输出; (4)计算输出层输出; (5)计算输出值与期望值的误差; (6)判断误差是否小于设定值,是则结束; (7)调整隐层到输出层的权值和阈值; (8)调整输入层到隐层的权值和阈值; (9)返回计算隐含层输出。
首页
4.学习过程
格式: [Pn,minp,maxp]=premnmx(P) [Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T) 说明:premnmx函数用于对网络的输入数据或目标数 据进行归一化,归一化后的数据将分布在[-1,1]区间 内。归一化公式为: Pn=2*(P-minp)/(maxp-minp)-l Tn=2*(T-mint)/(maxt-mint)-l 其中,P为原始输入数据,maxp和minp分别是P中的最 大值和最小值,Pn为归一化后的输入数据。T是原始目 标数据,maxt和mint分别是T的最大值和最小值,Tn是 归一化后的目标数据。
住宅销售额 0.5677 0.2616
办公楼销售额 -0.2435 0.1754
商业营业用房销售额 -0.5839 1.0756
0.1176
0.4274 -0.0649 0.2077 0.2175 0.2340 -0.1785 0.9792 -0.4979
0.2983
0.0965 0.3185 0.4722 -0.0675 0.1267 -0.4295 0.7275 -0.1880
第12章 神经网络预测法 12.1 神经网络基本理论 12.2 BP神经网络的MATLAB函数 12.3 案例分析 12.3.1 北京市房地产开发投资及销售分析 12.3.2 深证综合指数预测
练习与提高(12)
12.1 神经网络基本理论 12.1.1 人工神经网络 人工神经网络(Artificial Neural Network,ANN),是由大 量处理单元(神经元Neurons)广泛互连而成的网络,由分 布于若干层的节点组成。每个单节点都有自己的输入值、 权重、求和与激活函数以及输出值,在处理之前,数据 被分为训练数据集(Training Data set)和测试数据集 (Testing Data set),然后将权重或输入,指派到第一层 的每一个节点。每次重复时,系统处理输入,并与实际 值相比较,得到度量后的误差,并反馈给系统,调整权 重。大多数情形下,调整后的权重都能更好地预测实际 值。当达到预定义的最小误差水平时,处理结束。
首页
12.3 案例分析 12.3.1 北京市房地产开发投资及销售分析 北京市1999年至2010年房地产开发投资的资金来源中 的国内贷款,与各种房屋类型销售额数据如表12-1所 示,进而计算出2000年至2010年各项指标的增长率, 数据如表12-2所示,试将住宅、办公楼、商业营业用 房的销售额增长率作为输入元素,国内贷款额增长率 作为目标函数,建立BP神经网络仿真模拟。
(1)读入样本; (2)数据处理; (3)创建网络; (4)设定参数; (5)训练网络; (6)模拟输出; (7)调整参数:学习速率、动量系数、训练次数、 误差精度等; (8)仿真预测:网络固定,输入新的样本集,模拟 输出。
首页
12.1.4 BP神经网络预测
BP神经网络通过对以往历史数据的学习,找出数据的变化 趋势之间的非线性关系,并将其存储在网络具体的权值和 阀值中,从而预测未来数据的走势。
首页
3.滚动预测 滚动预测,又可称为迭代一步预测,是先进行单步预 测,再将网络输出的预测值反馈给网络输入端作为输 入的一部分,用于下一步的预测。 若开始预测时输入数据是实际的时序观测值 X n , X n1,, X nm 输出是下一时刻的预测值 X nm1 , 将 X nm1 与 X n1, X n2 ,, X nm 一起作为输入数据对 X n m2 m 2 项进行估计,得到输出的预测值 X n 如此反复迭代,就得到对未来一段时期的预测值。
X nmk f ( X n , X n1,, X nm )
用神经网络进行预测,即用神经网络通过一组数据点 X n , X n1 ,, X nm 来拟合函数f,得出未来n m k (k>1)时刻 数据的预测值。
首页
1.单步预测
当k=1时,且网络的所有输入数据都是时间序列的实际 观测值时所做的预测就是单步预测。 在进行预测时,把实际的时序观测值 X n , X n1,, X nm ,这 m个数据输入网络,输出是下一时刻的预测值X nm1 若要继续对 X nm2 的值进行预测,则用实际观测值X m 2 作为输入数据,得到预测值 X n
首页
12.2 BP神经网络的MATLAB函数 1.数据的预处理和后处理 数据的预处理和后处理是有效训练神经网络的关键步骤, 直接影响到训练后神经网络的性能。常见的方法是将原 始数据进行归一化处理,即通过一定的线性变换将输入 和输出数据统一限制在[0,1]或[-1,1]区间内。
利用premnmx或prestd函数可以对输入和目标数据集进 行归一化处理,使其落入[-1,1]区间。
nห้องสมุดไป่ตู้1
, X n2 ,, X nm1
首页
2.多步预测
当k>l时,网络输入m个历史数据,输出 X nm1, X nm2 ,, X nmk 的预测值。多步预测用于股票价格预测误差较大。这 是因为在网络运行调整权值和阀值时,每次迭代都要 累加前一次k个预测值的误差,从而造成网络难以收 敛的情况,甚至导致网络发生振荡。
12.1.3 BP神经网络过程
1.BP网络的结构
BP网络是一种单向传播的多层前向网络,具有三层或三层以 上的神经网络,包括输入层、中间层(隐层)和输入层。上下 层之间实现全连接,每一层神经元之间无连接。
输入层
隐层
输出层
2.传递函数或激活函数
一般输入层和隐层的传递函数是S形函数(logsig):
1 f ( x) 1 e x
1 e x f ( x) x 1 e
输出层的是线性函数,用purelin表示
3.模拟过程 网络通过对已知信息的反复学习训练,运用根据误差 来逐步调整与改变神经元连接权重和神经元阈值的方 法,使得相似的输入有相似的输出,从而达到处理信 息、模拟输入输出关系的目的。
2.创建网络 (1)newff函数:用来建立一个前馈BP网络 格式:net=newff(PR,SN,TF,BTF,BLF,PF); 说明:PR:表示由每组输入(共P组)元素的最大值和最小值 组成的P×2维矩阵;或用函数minmax(P)表示; SN:表示网络隐含层和输出层神经元的个数; TF:表示网络隐含层和输出层的传递函数,tansig(默认), logsig,purelin; BTF:表示网络的训练函数。普通训练traingdm:需设定 学习速率、动量系数,快速训练trainlm(默认): BLF:表示网络权值学习函数,learngdf(默认); PF:表示网络性能函数,mse(默认),网络输出和目标输出的 均方误差。
889.37 2367.77 1439.08
1845.97
1201.37 2486.77 2060.52
402.54
230.72 431.14 487.32
237.07
192.76 299.86 318.99
北京市房地产开发投资及销售额增长率
日期 2000 2001 2002 2003 2004
国内贷款 0.3684 0.3541
3.设定参数 net=init(net);初始化网络权值和阈值(可不设定) net.trainparam.show=训练状态的显示幅度;(默认25) net.trainparam.lr=学习速率;(权值阈值的调整幅度) net.trainparam.mc=动量系数;(权阈值改变的重复度) net.trainparam.epochs=训练次数;(默认100) net.trainparam.goal=误差精度;(默认0) net.trainparam.time=训练秒数;(可不选)
案例二: 中空保温玻璃的销售预测 MATLAB程序如下: clear p=[0.5677 -0.2435 -0.5839 0.2616 0.1754 1.0756 0.2983 -0.0679 0.7336 0.0965 -0.3516 0.6908 0.3185 0.8940 -0.0233 0.4722 0.9227 0.8708 -0.0675 0.3464 0.2965 0.1267 0.1315 0.3773 -0.4295 -0.5566 -0.2069 0.7275 0.6252 0.4419 -0.1880 0.1225 0.0618]'; t=[0.3684 0.3541 0.1176 0.4274 -0.0649 0.2077 0.2175 0.2340 -0.1785 0.9792 -0.4979];
首页
格式:[P,T]=postmnmx(Pn,minp,maxp,Tn,mint,maxt) 说明:Postmnmx函数可将premnmx函数所归一化数据进行反 归一化处理 P=0.5*(Pn+1)*(maxp-minp)+minp T=0.5*(Tn+1)*(maxt-mint)+mint 将输入数据或目标数据转化为区间[0,1]的归一化处理公式为: Pn=(P-minp)/(maxp-minp) Tn=(T-mint)/(maxt-mint) 其对应的反归一化处理公式 P=Pn*(maxp-minp)+ minp T=Tn*(maxt-mint)+ mint
-0.0679
-0.3516 0.8940 0.9227 0.3464 0.1315 -0.5566 0.6252 0.1225
0.7336
0.6908 -0.0233 0.8708 0.2965 0.3773 -0.2069 0.4419 0.0618
2005
2006 2007 2008 2009 2010
382.77
586.86 549.96 676.92 841.42
716.53
789.16 1085.11 1739.94 1626.30
57.68
40.58 99.21 249.62 352.94
25.95
51.78 50.59 120.85 162.56
2007
2008 2009 2010
1063.21
(4.训练网络: 格式:[net,tr]=train(net,P,T) 说明:P为输入样本矢量集;T为对应的目标样本矢量集: 等号左右两侧的net分别用于表示训练得到和训练以前的神 经网络对象;tr存储训练过程中的步数信息和误差信息,并 给出网络误差实时变化曲线。
5.BP神经网络的仿真 格式:[Y,Pf,Af,E,perf]=sim(net,P,Pi,Ai,T) 说明:输入net为神经网络对象,P为网络输入,Pi为 输入延迟的初始状态,Ai为层延迟的初始状态,T为 目标矢量,Y为网络输出,Pf为训练终止时的输入延 迟状态,Af为训练终止时的层延迟状态,E为输出和 目标矢量之间的误差,perf为网络性能值。 6.模拟输出 图形输出:plot(横坐标,纵坐标,‘参数’) 查看参数:权值:net.IW(层序号) 阈值:net.b(层序号)
12.1.2 BP神经网络的基本原理
BP(Back-Propagation Network) 是一种多层网络的“逆 推”学习算法。其基本思想是: 学习过程由信号的正向传播与误差的反向传播组成。 正向传播时,输入样本从输入层传入,经隐层逐层处理 后传向输出层。若输出层的实际输出与期望输出不符,则转 向误差的反向传播阶段。 误差的反向传播是将输出误差以某种形势通过隐层向输 入层逐层反传,并将误差分摊给各层的所有单元,从而获得 各层单元的误差信号,此误差信号即作为修正各单元权值的 依据。 这种信号正向传播与误差反向传播的各层权值调整过程 是周而复始地进行。权值不断调整的过程,也就是网络的学 习训练过程。此过程一直进行到网络输出的误差减少到可以 接受的程度,或进行到预订的设定的学习次数为止。
北京市房地产开发投资及销售原始数据
日期 1999 2000 2001 国内贷款 165.22 238.82 340.30 住宅销售额 232.02 409.34 531.71 办公楼销售额 66.08 51.80 61.73 商业营业用房销售 额 7.62 4.25 12.46
2002
2003 2004 2005 2006
(1)读入样本、设定初始权值和阈值; (2)设定参数; (3)计算隐含层输出; (4)计算输出层输出; (5)计算输出值与期望值的误差; (6)判断误差是否小于设定值,是则结束; (7)调整隐层到输出层的权值和阈值; (8)调整输入层到隐层的权值和阈值; (9)返回计算隐含层输出。
首页
4.学习过程
格式: [Pn,minp,maxp]=premnmx(P) [Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T) 说明:premnmx函数用于对网络的输入数据或目标数 据进行归一化,归一化后的数据将分布在[-1,1]区间 内。归一化公式为: Pn=2*(P-minp)/(maxp-minp)-l Tn=2*(T-mint)/(maxt-mint)-l 其中,P为原始输入数据,maxp和minp分别是P中的最 大值和最小值,Pn为归一化后的输入数据。T是原始目 标数据,maxt和mint分别是T的最大值和最小值,Tn是 归一化后的目标数据。
住宅销售额 0.5677 0.2616
办公楼销售额 -0.2435 0.1754
商业营业用房销售额 -0.5839 1.0756
0.1176
0.4274 -0.0649 0.2077 0.2175 0.2340 -0.1785 0.9792 -0.4979
0.2983
0.0965 0.3185 0.4722 -0.0675 0.1267 -0.4295 0.7275 -0.1880
第12章 神经网络预测法 12.1 神经网络基本理论 12.2 BP神经网络的MATLAB函数 12.3 案例分析 12.3.1 北京市房地产开发投资及销售分析 12.3.2 深证综合指数预测
练习与提高(12)
12.1 神经网络基本理论 12.1.1 人工神经网络 人工神经网络(Artificial Neural Network,ANN),是由大 量处理单元(神经元Neurons)广泛互连而成的网络,由分 布于若干层的节点组成。每个单节点都有自己的输入值、 权重、求和与激活函数以及输出值,在处理之前,数据 被分为训练数据集(Training Data set)和测试数据集 (Testing Data set),然后将权重或输入,指派到第一层 的每一个节点。每次重复时,系统处理输入,并与实际 值相比较,得到度量后的误差,并反馈给系统,调整权 重。大多数情形下,调整后的权重都能更好地预测实际 值。当达到预定义的最小误差水平时,处理结束。
首页
12.3 案例分析 12.3.1 北京市房地产开发投资及销售分析 北京市1999年至2010年房地产开发投资的资金来源中 的国内贷款,与各种房屋类型销售额数据如表12-1所 示,进而计算出2000年至2010年各项指标的增长率, 数据如表12-2所示,试将住宅、办公楼、商业营业用 房的销售额增长率作为输入元素,国内贷款额增长率 作为目标函数,建立BP神经网络仿真模拟。
(1)读入样本; (2)数据处理; (3)创建网络; (4)设定参数; (5)训练网络; (6)模拟输出; (7)调整参数:学习速率、动量系数、训练次数、 误差精度等; (8)仿真预测:网络固定,输入新的样本集,模拟 输出。
首页
12.1.4 BP神经网络预测
BP神经网络通过对以往历史数据的学习,找出数据的变化 趋势之间的非线性关系,并将其存储在网络具体的权值和 阀值中,从而预测未来数据的走势。
首页
3.滚动预测 滚动预测,又可称为迭代一步预测,是先进行单步预 测,再将网络输出的预测值反馈给网络输入端作为输 入的一部分,用于下一步的预测。 若开始预测时输入数据是实际的时序观测值 X n , X n1,, X nm 输出是下一时刻的预测值 X nm1 , 将 X nm1 与 X n1, X n2 ,, X nm 一起作为输入数据对 X n m2 m 2 项进行估计,得到输出的预测值 X n 如此反复迭代,就得到对未来一段时期的预测值。
X nmk f ( X n , X n1,, X nm )
用神经网络进行预测,即用神经网络通过一组数据点 X n , X n1 ,, X nm 来拟合函数f,得出未来n m k (k>1)时刻 数据的预测值。
首页
1.单步预测
当k=1时,且网络的所有输入数据都是时间序列的实际 观测值时所做的预测就是单步预测。 在进行预测时,把实际的时序观测值 X n , X n1,, X nm ,这 m个数据输入网络,输出是下一时刻的预测值X nm1 若要继续对 X nm2 的值进行预测,则用实际观测值X m 2 作为输入数据,得到预测值 X n
首页
12.2 BP神经网络的MATLAB函数 1.数据的预处理和后处理 数据的预处理和后处理是有效训练神经网络的关键步骤, 直接影响到训练后神经网络的性能。常见的方法是将原 始数据进行归一化处理,即通过一定的线性变换将输入 和输出数据统一限制在[0,1]或[-1,1]区间内。
利用premnmx或prestd函数可以对输入和目标数据集进 行归一化处理,使其落入[-1,1]区间。
nห้องสมุดไป่ตู้1
, X n2 ,, X nm1
首页
2.多步预测
当k>l时,网络输入m个历史数据,输出 X nm1, X nm2 ,, X nmk 的预测值。多步预测用于股票价格预测误差较大。这 是因为在网络运行调整权值和阀值时,每次迭代都要 累加前一次k个预测值的误差,从而造成网络难以收 敛的情况,甚至导致网络发生振荡。
12.1.3 BP神经网络过程
1.BP网络的结构
BP网络是一种单向传播的多层前向网络,具有三层或三层以 上的神经网络,包括输入层、中间层(隐层)和输入层。上下 层之间实现全连接,每一层神经元之间无连接。
输入层
隐层
输出层
2.传递函数或激活函数
一般输入层和隐层的传递函数是S形函数(logsig):
1 f ( x) 1 e x