QQ登录

只需要一步,快速开始

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

[问题求助] 数模小白关于BP的一些问题

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

1

主题

10

听众

40

积分

升级  36.84%

  • TA的每日心情

    2016-1-29 14:03
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    自我介绍
    暂无

    群组2015国赛优秀论文解析

    跳转到指定楼层
    1#
    发表于 2015-4-19 15:43 |只看该作者 |正序浏览
    |招呼Ta 关注Ta
    %PA 6月6:0:0   计算的MATLAB 程序如下:BP神经网络预测
    ! B% v9 k* `' ?* R5 {0 S- x3 V%6月6位于第28行9 K6 d$ {* a) N3 v5 r3 o
    clc,clear# g+ V: I$ H/ l5 c. b% A; L# C
    load ('data.mat')%原始数据以列向量的方式存放在workplace文件中
    9 K0 a! |, x& i( VPA=PA(2:29,:);3 m. Q2 T7 T* @- L
    %数据的标准化2 ^% S* B. Y" [8 R
    N=size(PA);
    ; a$ A% x5 U5 ~2 n  Z6 n" {for j=1:N(1,2)/ s8 Y" y4 G2 q2 E+ H  _
        PAHminmax=minmax(PA(:,j)');
    ) w7 M8 G& p3 [3 {& k) }( Z. `  S" p    for i=1:N(1,1)
    " @4 ]: `& t, n$ G. h        PA(i,j)=(PA(i,j)-PAHminmax(1,1))/(PAHminmax(1,2)-PAHminmax(1,1));6 g# L/ `! p0 i3 n# R
        end
    ( e* Q% Z. Z5 y( Kend+ W0 u  m; @& y1 `; c
    %以每天的从0时计数起,每隔十五分钟作为输入: d9 }2 L# u4 d/ ^3 l/ P
    P=PA(7:27,:);
    + P7 L  }  B3 R7 Z4 Z" }%以6月6的间隔十五分钟的发电量作为目标向量
    . B5 i0 A+ A0 c2 {% m) L2 gT=PA(28,:);, A) c9 B% X! }9 H) W6 A' S( Q
    %创建一个BP神经网络,每一个输入向量的取值范围为[0 ,1],隐含层有22个神经元,
    6 G4 C2 o. t5 r5 T; m9 a5 A) }- G' H2 J%输出层有一个神经元,隐含层的激活函数为tansig,输出层的激活函数为%logsig,. H5 ]$ B2 j: i+ Q
    %训练函数为梯度下降函数,即标准学习算法! j  F1 y$ v0 _2 O% j- l
    for i=1:21
    7 i7 s) H! i( q: r$ G( K    a(i,1)=0;  d, {. S% _3 E8 ^9 i7 y. X
        a(i,2)=1;3 q% e: ~1 T0 e& J, |
    end
    : Y2 \/ N! Q, A8 I! u; Pnet=newff(a,[21,1],{'tansig','logsig'},'traingd');
    9 d6 I4 i, M) i( N3 b7 F3 Tnet.trainParam.epochs=30000;
    & e% v# y, g4 l! Y5 }( Enet.trainParam.goal=0.01;% w8 h  I+ t4 k) G) z! P
    %设置学习速率为0.1
    ) o: D0 t7 r5 N3 ~# ULP.lr=0.1;
    3 U/ i. I9 r, \3 e- u8 [( z9 f%训练网络. }' i2 w$ F+ K9 m& v8 p- C+ f4 d
    net=train(net,P,T);
    ' Q7 o# H0 `9 K%预测6月6的发电量数据
    5 \5 _, V1 K7 O' F1 lT1=sim(net,P);%预测值
    " c: J6 F: [, S9 B8 U- F( q- M1 o%PA.6月6日发电量真实值
    / J1 x# L3 k8 f" R% _* uT0=PA(28,:);
    " I  q& ^9 R* @  O' b%预测值与实际值的误差& I6 i% I0 p% s# @+ \
    for i=1:N(1,2)9 H# x& ]$ D, u  E8 w& N2 y
        error(1,i)=T1(1,i)-T0(1,i);
    % j0 G$ i7 m; [: o3 Wend
    * U9 G. I% x& _5 S, _' @8 j6 d1 a$ s. C%绘制误差图
    ' C( M; @, m+ V* }3 jfigure(1)0 g2 e: z8 H' }
    plot(1:N(1,2),error(1,1:N(1,2)),'-*')
    1 l- t$ q  T  r  @2 V* ^9 m; ?grid on. I6 S* |/ O+ p4 I8 n
    xlabel('时点x'),ylabel('发电功率误差y');
    ) _. a5 f( _$ z5 o$ m& _0 d( k3 Vtitle('PA6.6.0.0-6.6.23.45发电功率误差图像')
    . b$ d0 M0 T. ^1 ]2 W+ Z%绘制实时函数图
    ! y7 ~: h) e4 N; I- {. C% i- k; {figure(2)2 @. ~% V8 j# B5 y# K! I% t- n
    plot(1:N(1,2),T0(1,:),1:N(1,2),T1(1,:),'r')" ^# {# t: V2 G' x  z
    grid on9 _0 E; l7 x& x& R% y# P2 f
    legend('实际值','预测值',2)" G4 b8 ~/ }  C: n
    xlabel('时点x'),ylabel('发电功率y');8 y4 {' k& Z8 B# x
    title('PA6.6.0.0-6.6.23.45发电功率实时函数图像')3 F% M' ], W; B
    web('http://www.ilovematlab.cn/forum-238-1.html','-browser')2 p0 k* E9 a; J" w' ~4 G

    ! F( O, K$ k2 K
    . }  d, r3 F! a9 D3 Q; I1 B) t) M) P. N: _5 @$ |" k0 K0 ]! H/ H
      A$ \. p; s" v6 I5 W2 @' k
    一本书关于预测发电量的BP的程序。我稍微有点纳闷,既然你已经知道了6月6日的实际值,并且都拿相应的数据来作目标向量了,还利用神经网络来预测6月6日的发电量,意义何在?
    1 {! E2 X- ^5 g: q: w6 u9 Q/ _1 ~
    3 S; i) t; U. t. B0 v
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    杨地雷        

    3

    主题

    10

    听众

    37

    积分

    升级  33.68%

  • TA的每日心情
    开心
    2016-1-13 16:53
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    自我介绍
    建模组

    社区QQ达人

    回复

    使用道具 举报

    木__易        

    4

    主题

    10

    听众

    907

    积分

    升级  76.75%

  • TA的每日心情
    开心
    2017-1-7 12:01
  • 签到天数: 220 天

    [LV.7]常住居民III

    2013国际赛参赛者

    社区QQ达人

    群组2015年美赛冲刺

    群组哈尔滨工业大学建模团

    群组国赛讨论

    回复

    使用道具 举报

    3

    主题

    12

    听众

    100

    积分

    升级  0%

  • TA的每日心情
    奋斗
    2015-7-18 17:29
  • 签到天数: 30 天

    [LV.5]常住居民I

    社区QQ达人

    误差也有分为训练误差和测试误差的,具体你可以参考统计学习方法相关资料。8 E6 s7 }: r; O  P( l
    回复

    使用道具 举报

    fg8741142        

    0

    主题

    10

    听众

    41

    积分

    升级  37.89%

  • TA的每日心情
    擦汗
    2015-5-21 16:54
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    邮箱绑定达人 社区QQ达人

    你要明白神经网络是干嘛用的,你这个代码做出来的网络,可能是预测那些不知道实际发电量的,6月6日的数据是用来训练网络的,同时对比误差查看网络的性能
    1 o3 b5 O) ~# H& a) _) Y9 o
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-6-4 13:34 , Processed in 0.475444 second(s), 75 queries .

    回顶部