• 大小: 31.19MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-24
  • 语言: 其他
  • 标签: 神经网络  

资源简介

采用了基于最大矩阵元法的改进RBF神经网络模型对MG时间序列进行建模预测。

资源截图

代码片段和文件信息

function BP_MG()           %BP神经网络建模
f1=MG(6000);
for k=201:3200
    SamIn(:k-200)=[f1(k-18);f1(k-12);f1(k-6);f1(k)];
    SamOut(k-200)=f1(k+85);
end
for t=5001:5500
    TestSamIn(:t-5000)=[f1(t-18);f1(t-12);f1(t-6);f1(t)];
    TestSamOut(t-5000)=f1(t+85);
end
[r1c1]=size(SamIn);
SamNum=c1;
InDim=r1;
[r2c2]=size(TestSamIn);
TestSamNum=c2;
OutDim=1;

        
a=0.9;
HiddenUnitNum=20;
MaxEpochs=10000;
E0=0.01;
Ir=0.00012;
%绘制样本曲线
figure(1)
hold on;
title(‘RBF神经网络训练图‘);
xlabel(‘样本‘);
ylabel(‘训练输出‘);
plot(1:SamNumSamOut‘-‘);
figure(2)
plot(1:TestSamNumTestSamOut‘-‘);
hold on;
title(‘RBF神经网络测试图‘);
xlabel(‘样本‘);
ylabel(‘测试输出‘);


W1=0.2*rand(HiddenUnitNumInDim)-0.1;
B1=0.2*rand(HiddenUnitNum1)-0.1;
W2=0.2*rand(OutDimHiddenUnitNum)-0.1;
B2=0.2*rand(OutDim1)-0.1;
W1Ex=[W1 B1];
W2Ex=[W2 B2];

SamInEx=[SamIn‘ ones(SamNum1)]‘;
ErrHistory=[];

t1 = clock;%计算迭代时间

dW2Ex=0;
dW1Ex=0;

for epoch=1:MaxEpochs
  HiddenOut=logsig(W1Ex*SamInEx);
  HiddenOutEx=[HiddenOut‘ ones(SamNum1)]‘;
  NetworkOut=W2Ex*HiddenOutEx;
  Error=(SamOut-NetworkOut);
  SSE=sumsqr(Error);
  SSE=SSE/SamNum;
  ErrHistory=[ErrHistory SSE];
  
  if SSE  
  Delta2=Error;
  Delta1=W2‘*Delta2.*HiddenOut.*(1-HiddenOut);
  %误差反向传播,修改权值
%   Ir=min(0.0005exp(-0.0080*epoch));
  dW2Ex=Delta2*HiddenOutEx‘*Ir+dW2Ex*a;
  dW1Ex=Delta1*SamInEx‘*Ir+dW1Ex*a;
  
  W1Ex=W1Ex+dW1Ex;
  W2Ex=W2Ex+dW2Ex;
  W2=W2Ex(:1:HiddenUnitNum);
  
end

disp([‘算法运行时间:‘num2str(etime(clockt1))‘秒‘]);
disp([‘训练迭代次数:‘num2str(epoch)‘次‘]);
disp([‘训练模型误差:‘num2str(SSE)]);
figure(1)
hold on
figure(1)
plot(1:SamNumNetworkOut‘-k‘);

TestSamInEx=[TestSamIn‘ ones(TestSamNum1)]‘;
TestHiddenOut=logsig(W1Ex*TestSamInEx);
TestHiddenOutEx=[TestHiddenOut‘ ones(TestSamNum1)]‘;
TestNetworkOut=W2Ex*TestHiddenOutEx;
figure(2)
hold on
Error1=(TestSamOut-TestNetworkOut)./TestSamOut;
SSE1=sumsqr(Error1);
SSE1=SSE1/TestSamNum;
disp([‘预测模型误差:‘num2str(SSE1)]);
figure(2)
plot(1:TestSamNumTestNetworkOut‘-k‘);

figure(3)
hold on
grid
[~Num]=size(ErrHistory);
plot(1:NumErrHistory‘k-‘);
end





    







 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2274  2014-05-08 21:15  MG\BP_MG.m

     文件       6344  2014-05-04 11:21  MG\classify.mat

     文件        172  2014-05-02 23:01  MG\k.mat

     文件       1347  2014-05-08 21:14  MG\kmeans.m

     文件        577  2014-05-08 21:10  MG\MG.m

     文件   32733316  2014-05-02 22:17  MG\r.mat

     文件       2950  2014-05-08 23:14  MG\RBF_MG.asv

     文件       2950  2014-05-08 23:14  MG\RBF_MG.m

     目录          0  2014-07-15 20:12  MG

----------- ---------  ---------- -----  ----

             32749930                    9


评论

共有 条评论