QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2563|回复: 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神经网络预测
    7 X0 J; |% G( X  t8 O) f%6月6位于第28行
    6 L) U8 k- h. ]clc,clear. V2 ]5 [2 w* D* i
    load ('data.mat')%原始数据以列向量的方式存放在workplace文件中& C6 @9 @# n# w5 m0 E
    PA=PA(2:29,:);
    ; A5 E) j0 c, l/ X! y; y& K( L%数据的标准化; o* f( n; |8 h" K- \
    N=size(PA);: b4 Q1 k( M: {& @% U$ u# G
    for j=1:N(1,2)
    ) H3 o9 Y, I1 D6 T    PAHminmax=minmax(PA(:,j)');
    ; D" y0 j% u- O1 h* U9 |    for i=1:N(1,1)8 S% o9 w, T1 r% \* G, t( Q
            PA(i,j)=(PA(i,j)-PAHminmax(1,1))/(PAHminmax(1,2)-PAHminmax(1,1));
    * j6 W% Z: P; G) W0 C5 m    end2 l; v0 ?0 V2 k
    end
    & n2 z8 y6 q: J+ s1 l8 c9 O/ i%以每天的从0时计数起,每隔十五分钟作为输入8 C- X  m# R1 y# y4 P7 i2 {
    P=PA(7:27,:);
    $ M7 Y* Q6 y9 c- ]( s%以6月6的间隔十五分钟的发电量作为目标向量
    6 x2 j0 Q& j/ v5 @T=PA(28,:);( W* i2 }8 q6 I+ \& G: D' l0 P
    %创建一个BP神经网络,每一个输入向量的取值范围为[0 ,1],隐含层有22个神经元,+ o& Q3 [& ^; ?, t  ^
    %输出层有一个神经元,隐含层的激活函数为tansig,输出层的激活函数为%logsig,; X5 g3 W/ j$ k) Y; c: U5 N  ?
    %训练函数为梯度下降函数,即标准学习算法
    ! q! Y1 C9 y7 yfor i=1:21* p+ Y& b+ ^2 t" G$ q! y
        a(i,1)=0;
    - `, C" P" |9 a$ _! s( @    a(i,2)=1;1 ?' T  [+ _6 h7 C
    end4 r! e8 |. Q: e! Y, K
    net=newff(a,[21,1],{'tansig','logsig'},'traingd');! [7 B7 y' ]: c# G& @+ E
    net.trainParam.epochs=30000;
    * U4 V$ S  U  |2 m9 }3 p% {- M7 Knet.trainParam.goal=0.01;$ p, ?+ c3 q% J% J+ q8 Z9 U7 a; m
    %设置学习速率为0.1
    , r9 Y/ W( F0 `# ?  ILP.lr=0.1;
    & v7 ^2 D& t9 c) F# ^# X7 D%训练网络. j' x0 |3 C8 J
    net=train(net,P,T);
    ( N4 d* e5 D2 U. p3 C%预测6月6的发电量数据
    6 q( x' Z  q* R* U1 n* O$ H6 Q4 T; NT1=sim(net,P);%预测值
    ; _0 x9 M, S1 P8 i' a: s6 D3 d, ~%PA.6月6日发电量真实值
    : k# `3 p4 k! A1 I5 Q- ET0=PA(28,:);; }2 C; k: L) K4 @, ]
    %预测值与实际值的误差
    " y. g3 M6 A, \2 bfor i=1:N(1,2)) A( G1 Z2 g; e8 k# R+ F) ]% X3 g
        error(1,i)=T1(1,i)-T0(1,i);
    ; j: f( G( [, F$ a. t( Dend
    5 E. u( g$ Z( l%绘制误差图: R( ^$ [1 i) ^6 z8 G
    figure(1)( q7 Z0 E0 ?! {& b
    plot(1:N(1,2),error(1,1:N(1,2)),'-*'); G! d8 f* y6 k; j7 n
    grid on
    : ]* p. H# g# z/ mxlabel('时点x'),ylabel('发电功率误差y');( j$ \, t3 E2 d# }9 L1 \) t4 M/ P
    title('PA6.6.0.0-6.6.23.45发电功率误差图像')
    . p# t# M. ]7 z  H%绘制实时函数图( p  r2 X) w# s" p+ i* L& C0 M. u; H
    figure(2)# W, ~# ~' w/ Y9 G  K2 ]. d
    plot(1:N(1,2),T0(1,:),1:N(1,2),T1(1,:),'r')8 j3 J. t6 V8 ]8 B; N/ g: O
    grid on( t8 N2 R; B2 v
    legend('实际值','预测值',2)! E7 \1 K2 o% K3 I5 ]% k4 x+ u
    xlabel('时点x'),ylabel('发电功率y');
    ( e* O. W: }9 A; U4 W( }title('PA6.6.0.0-6.6.23.45发电功率实时函数图像')
    / I& E* n: a  l% D, I web('http://www.ilovematlab.cn/forum-238-1.html','-browser')2 K3 o- ~. h9 i! e9 Z. O1 c

    & B( o2 N4 t7 A9 a! p9 U% T, t, V" z$ Z

    3 X. E: k8 @, j/ ]1 d/ {5 r- E
    - t, t5 U0 z8 ~' L5 \/ R5 p% |. \一本书关于预测发电量的BP的程序。我稍微有点纳闷,既然你已经知道了6月6日的实际值,并且都拿相应的数据来作目标向量了,还利用神经网络来预测6月6日的发电量,意义何在?
    ; F+ X: J4 H, ]' o' }- l% n
    : M; o) k' C7 i* 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达人

    误差也有分为训练误差和测试误差的,具体你可以参考统计学习方法相关资料。* z: [8 h+ j# X! Z) [7 [
    回复

    使用道具 举报

    fg8741142        

    0

    主题

    10

    听众

    41

    积分

    升级  37.89%

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

    [LV.3]偶尔看看II

    邮箱绑定达人 社区QQ达人

    你要明白神经网络是干嘛用的,你这个代码做出来的网络,可能是预测那些不知道实际发电量的,6月6日的数据是用来训练网络的,同时对比误差查看网络的性能
    ' `* R! X/ T' I/ r2 |
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-19 20:12 , Processed in 0.457103 second(s), 74 queries .

    回顶部