QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2350|回复: 0
打印 上一主题 下一主题

基于BP神经网络的预测算法

[复制链接]
字体大小: 正常 放大

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-5-22 11:23 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
%% 清空环境变量
2 l2 v7 E) x% q: tclc- x- @' s$ E& m$ c
clear9 z  L. W. V* t6 L

- V, d$ y2 I) [6 M+ ^/ M2 W! e%% 训练数据预测数据提取及归一化
% u6 Q( k: x: l$ G# {%下载输入输出数据
" d: R: U; i/ Jload data input output- _5 D) B( q% A, `! _  W+ g

1 _" \3 Z7 c* \%从1到2000间随机排序
. }1 h  l+ u. v0 Y# D' z2 k' Nk=rand(1,2000);' n- o( C4 o! O% w& n# I0 A
[m,n]=sort(k);  }; N4 j  _- G9 F+ R6 O, r& m) f

! d' }( _% z" s% @8 f# j( y%找出训练数据和预测数据: n+ L( y! c* w5 G( U! s; q
input_train=input(n(1:1900),';
% O1 e- M* Q* E, |1 h1 ^output_train=output(n(1:1900));
- }& y3 W# a( X1 i1 g  V. Pinput_test=input(n(1901:2000),';
$ y! M* l* u! n8 Y2 w$ routput_test=output(n(1901:2000));
6 J, P' T4 J/ Q% m6 k+ C7 Z/ B) F; ]& ?
7 ]8 f% t; ~  U0 R9 x- x( S5 O%选连样本输入输出数据归一化
! v* g& G: `4 Y[inputn,inputps]=mapminmax(input_train);, d+ K0 j  g3 C4 i
[outputn,outputps]=mapminmax(output_train);
2 X% e) y: @: c  b1 [
  i9 b% Q6 }* Y# e; I" d%% BP网络训练
8 p3 l- M/ m7 t" O: C% %初始化网络结构/ [$ `1 T- \* p1 O0 W
net=newff(inputn,outputn,5);
( |; i9 R' I, u) P* Q. H
" n% O+ Z7 e/ Lnet.trainParam.epochs=100;
6 N% b4 ]! C$ g! @3 E8 gnet.trainParam.lr=0.1;
7 o# k* i2 H3 p# u1 p$ E' u, Knet.trainParam.goal=0.00004;
: S+ L& F" O2 E
0 X3 u( u% h/ N" R5 E/ z6 z4 j%网络训练4 j2 J- z, K3 Y2 T0 R
net=train(net,inputn,outputn);
7 Y( R: E; ~6 N4 O' _2 e' c" G$ s0 P  R' ^; v& Z& V& m
%% BP网络预测
' l( B7 \$ x, {1 l; H; U%预测数据归一化$ e1 W- B- I# I& Z0 a; D+ s9 p
inputn_test=mapminmax('apply',input_test,inputps);; |+ v* t# a6 L2 ~: S

& G3 X) W# |5 g; c2 C%网络预测输出. @4 o" m1 W5 O% V/ T  {
an=sim(net,inputn_test);
0 g$ J4 z. `9 A$ j
) C1 ]$ J8 W: G7 y( c# t; ?%网络输出反归一化
. U* i6 O# M4 B+ U% Z3 \BPoutput=mapminmax('reverse',an,outputps);* M4 ^7 v) r4 Z8 g5 s6 `; v
# a/ b0 v1 u! N& i. E
%% 结果分析- {# [* E! T) U9 ?6 {" U
# f6 z+ l9 h# d; @& v) l. i$ E2 e
figure(1). R* ^0 P- v0 R- a$ a( y
plot(BPoutput,'g')
+ w8 U& @' e9 M% ghold on
* B9 {% `9 ]: @! b2 \! hplot(output_test,'-*');
9 e. w( h; K% \. l; Clegend('预测输出','期望输出')- p  l0 \0 [% R% e: Q- V
title('BP网络预测输出','fontsize',12)# \) G' |' z; X
ylabel('函数输出','fontsize',12)5 [3 Q5 B% G2 v. ~
xlabel('样本','fontsize',12)
1 ]: p) h7 Y! j9 p%预测误差
% e: }0 T: @8 [error=BPoutput-output_test;$ `9 k/ S$ o3 P  S' D  X
( \( W+ B2 a5 ^! \3 k

/ F- B/ K; E: Kfigure(2)
; k0 R+ f  ^! b3 x: A! h1 Y8 Mplot(error,'-*')0 U0 `) |% Q2 e; e0 l
title('BP网络预测误差','fontsize',12)
; h# X6 l' p! \8 Pylabel('误差','fontsize',12)
% _' P4 S- ?9 ~' B! M) L; \3 x. Axlabel('样本','fontsize',12)
8 w4 f# W1 \1 v; T" {$ _6 I% u/ u/ a, N& r
figure(3)
+ X4 r6 r9 L' u0 @* _6 m0 P1 @0 J8 Dplot((output_test-BPoutput)./BPoutput,'-*');# R$ |6 w& ]9 P0 S: {8 ^3 W
title('神经网络预测误差百分比')
  p2 W' h; v) J3 c- ~3 |3 |! j: c- R- O9 {$ u5 b
errorsum=sum(abs(error));8 `* R, [& t9 ~% t: I
以上代码是一个简单的基于BP神经网络的回归预测模型。下面是代码的详细解释:
) o; ?# n8 R0 k3 D4 A  v7 ^- p
6 a9 }5 @  K+ p: p8 o1. 清空环境变量并导入训练数据(input和output)。1 P* f$ O* P+ O8 W5 W; e
8 \6 C9 d9 C' @
2. 对输入数据进行随机排序,将数据集分为训练数据和预测数据。% n9 b& v. A* R8 I! j5 _. m
+ _7 O) [# P! F" M4 L/ l! l) y
3. 对训练数据进行归一化处理,使用mapminmax函数将输入数据和输出数据进行归一化操作。/ b/ C9 ]! N/ ]* j/ L) N9 E
  w. b6 w& f4 }8 U, ]8 N/ N: a
4. 创建一个BP神经网络模型(使用5个隐藏层神经元),定义网络的训练参数(如训练轮数、学习率、目标误差等),并进行网络训练。
3 G1 B1 E" \1 C2 k0 S/ h, a* d# _: u( c+ e; o4 Z
5. 对预测数据进行归一化处理并使用训练好的神经网络进行预测,得到预测输出BPoutput。# @# U# Z& q# \$ p7 I
. j+ m. n$ J# e9 n9 J
6. 将预测输出BPoutput反归一化,得到最终的预测结果。
2 F' k6 b7 T* ]' P* `1 J* r2 w1 E  _) [% Z8 b0 E, B; B
7. 绘制结果分析图表:第一个图表展示预测输出和期望输出的对比,第二个图表展示预测误差,第三个图表展示神经网络预测误差百分比。( y; _, U% O/ h  m

' e) J6 f( E8 C, S4 Z' b. ~4 _8. 计算预测误差的绝对值之和,存储在errorsum变量中。" L# e( r. X0 @0 y6 c  C2 I# h

- w7 O, P( v, d  ]" J总的来说,该代码实现了使用BP神经网络进行回归预测的过程,包括数据的处理、网络的训练、预测结果的计算和分析结果的展示。
; v6 E2 j: x% b3 }* c* {1 a7 J0 Z5 R

8 I0 b' I* i. d# @- D' p
" G2 j2 K/ ^# I" V4 D. I6 ]! W6 H& @# p: a7 z, @8 G

chapter2_1.m

1.29 KB, 下载次数: 0, 下载积分: 体力 -2 点

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-7-28 01:03 , Processed in 0.493297 second(s), 53 queries .

回顶部