QQ登录

只需要一步,快速开始

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

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

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

1198

主题

4

听众

2978

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-5-22 11:23 |只看该作者 |正序浏览
|招呼Ta 关注Ta
%% 清空环境变量
# P) e& q4 {$ O+ \" Q. c% @clc8 G& C- k3 P4 w+ D" Q
clear8 G" L0 o0 t! |% ~# v

* r1 b: j; f2 }8 P8 r* y  m%% 训练数据预测数据提取及归一化# T  u8 N2 A  X: T2 p2 O
%下载输入输出数据
& `& N3 i. g/ S& J3 e( Pload data input output
/ f& J3 f, G& N- {- U7 p
; K" h; z7 B( ]4 Q( q; J: Q%从1到2000间随机排序/ w7 v8 O+ F" g# H3 C! f+ A3 a
k=rand(1,2000);
- c( P0 A: Y: @3 X" p' s6 w7 T[m,n]=sort(k);
, f- [6 z2 x& O, W' Z" n- @
5 T, f7 Z4 z2 Q' t%找出训练数据和预测数据
9 s5 s2 ?8 }2 `% [, H$ D: Rinput_train=input(n(1:1900),';6 }7 D" O8 E8 Q. G$ q# g
output_train=output(n(1:1900));
. z8 ], C. \. e+ }3 r8 zinput_test=input(n(1901:2000),';6 I4 }6 J+ A$ x+ E$ q1 O
output_test=output(n(1901:2000));
& y' @8 q' `! ^: o' r7 ]3 l8 S$ Q6 }1 N" h5 _! R: n. c
%选连样本输入输出数据归一化, @8 p& V# v8 Q. S* i+ }6 q$ j0 L; P
[inputn,inputps]=mapminmax(input_train);2 O! ^- W' k1 C
[outputn,outputps]=mapminmax(output_train);* m" m+ N  x4 f! T2 `
5 Q3 s% j9 e9 a4 f5 X2 B$ s
%% BP网络训练
' f1 j4 V' B$ J# l% %初始化网络结构
4 }# X4 N  L& S, m3 e5 r3 X  e- c2 vnet=newff(inputn,outputn,5);
9 h7 G/ _& z# \. R+ _9 s# w. i, a2 P3 O2 Q8 M* w7 M  Z$ E7 V( A
net.trainParam.epochs=100;( {$ f* f! |3 o
net.trainParam.lr=0.1;  J! C9 e4 K+ x2 Y3 @' H: k7 _- y
net.trainParam.goal=0.00004;7 J; O' [7 C+ z% d& k

4 d$ F  O2 V% X%网络训练
$ b$ ~" N) k$ \% Dnet=train(net,inputn,outputn);
$ v9 }/ f  V  e! q( a( s8 M3 Y# h4 ~( M5 H
%% BP网络预测
% a" @6 ~% V0 y%预测数据归一化( {; N- w; q8 B$ K
inputn_test=mapminmax('apply',input_test,inputps);6 c6 H7 r) h1 G' ~! g, \) q% r

" j* i$ j3 s1 P" c%网络预测输出
+ I" P/ w% e! e9 @. n- Kan=sim(net,inputn_test);
  F: b! M9 g+ O0 X8 f: f2 P* N4 O) U% H* [
%网络输出反归一化* E- J+ J+ Q; I( G
BPoutput=mapminmax('reverse',an,outputps);
5 |2 k, Z  h+ m; c# f
2 ~) R7 _. f. M- [# v5 e%% 结果分析
' Y" D0 x6 `7 @1 g% J0 |4 v# u# X' @. e, F9 Q: z
figure(1)
8 r# O+ n% ?% ^3 A. j% Tplot(BPoutput,'g')
, K6 F4 E3 i& {1 k& H5 Whold on
, ^( B# A4 q& v; j' M& Zplot(output_test,'-*');5 P" f5 N+ O6 [& B7 j1 S
legend('预测输出','期望输出')
8 V8 `8 D6 D' [4 N: Qtitle('BP网络预测输出','fontsize',12)' x: @" H7 F* e3 s6 z
ylabel('函数输出','fontsize',12)
8 y7 t5 Y% a' ?2 ]1 R' D7 @9 wxlabel('样本','fontsize',12)" ~8 C/ l) _$ h) u3 D% ~
%预测误差& s  l: t) T9 Z' q! m8 p
error=BPoutput-output_test;' [) m8 H+ s7 W9 k- Z" f8 N
  q0 T9 u# \9 n

/ p7 F9 {, q2 W4 C" ^figure(2)9 P& v5 r% @5 k" j! A  H( f
plot(error,'-*')+ X. i/ ^2 e; L
title('BP网络预测误差','fontsize',12)
. f# t7 J$ d( N+ [4 jylabel('误差','fontsize',12)6 T3 z" h, w& ]
xlabel('样本','fontsize',12)
* n% x1 {* O1 L# N" c6 o0 ~0 ^- Y/ j8 B/ ]4 \; B
figure(3)
0 g8 m+ ~4 W  W; oplot((output_test-BPoutput)./BPoutput,'-*');  ]6 b) n' @. Q
title('神经网络预测误差百分比')
4 @- Y1 t2 e4 V6 N3 {4 d) B$ I( O8 q$ T2 u, {% C* L
errorsum=sum(abs(error));
9 I: A; Q, K) w9 @4 y- Z以上代码是一个简单的基于BP神经网络的回归预测模型。下面是代码的详细解释:
; J3 l+ `* S0 {  u( m, M% c4 c" P" j3 ]0 j# b; g
1. 清空环境变量并导入训练数据(input和output)。
. z( }+ I7 |3 O5 [+ E, n: u2 x, Z6 ^1 v7 L3 P, F
2. 对输入数据进行随机排序,将数据集分为训练数据和预测数据。
; \- r* w- d7 A- Y0 s7 ]  J+ M- m, H8 o$ t( p5 X3 }; V1 f
3. 对训练数据进行归一化处理,使用mapminmax函数将输入数据和输出数据进行归一化操作。1 `# Z4 S+ P# B9 D+ U

& ^) F8 Q; I1 p4. 创建一个BP神经网络模型(使用5个隐藏层神经元),定义网络的训练参数(如训练轮数、学习率、目标误差等),并进行网络训练。
5 t9 U- c# e2 W" u/ W2 h8 m4 s- @3 ?. a! i" J' b$ o
5. 对预测数据进行归一化处理并使用训练好的神经网络进行预测,得到预测输出BPoutput。) m1 V' c1 {+ J" r, Q6 h
2 ]/ Q0 ?1 y+ a2 [
6. 将预测输出BPoutput反归一化,得到最终的预测结果。
  e  c& }7 R+ |' V# F# S8 ?# Y
  u5 U6 \3 S1 t. Y4 F$ w7. 绘制结果分析图表:第一个图表展示预测输出和期望输出的对比,第二个图表展示预测误差,第三个图表展示神经网络预测误差百分比。
; v8 u) I# ~" X4 v: ?0 z9 L2 d6 C5 L' Q
8. 计算预测误差的绝对值之和,存储在errorsum变量中。
: K# i8 b/ x0 ^$ ?: |# t# `" q
! l1 P5 Q1 p( I# c- Y4 @- s/ m5 V总的来说,该代码实现了使用BP神经网络进行回归预测的过程,包括数据的处理、网络的训练、预测结果的计算和分析结果的展示。
9 `! \" M8 a0 B: Y
) h) Z* K8 W9 F  V: O  Y4 z5 P2 S
7 ?8 V: X. V0 N
+ w7 G' ?9 A5 t2 K5 W: {4 C4 Y3 y# i0 Q$ o* X7 @9 c/ L! A5 W

chapter2_1.m

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

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

fastpost qq
收缩
  • 电话咨询

  • 04714969085

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

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

蒙公网安备 15010502000194号

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

GMT+8, 2026-11-1 02:31 , Processed in 0.208798 second(s), 54 queries .

回顶部