专注人工智能在金融领域的应用

Matlab 神经网络

Matlab自带神经网络工具箱,很强大,可以用来直接建立神经网络模型和对网络进行训练,结合网上的资料,下面是个人总结的Matlab程序,程序已经过测试,没有问题。

% 生成训练样本集
clear all;
clc;
P=[110 0.807 240 0.2 15 1 18 2 1.5;
110 2.865 240 0.1 15 2 12 1 2;
110 2.59 240 0.1 12 4 24 1 1.5;
220 0.6 240 0.3 12 3 18 2 1;
220 3 240 0.3 25 3 21 1 1.5;
110 1.562 240 0.3 15 3 18 1 1.5;
110 0.547 240 0.3 15 1 9 2 1.5];
0 1.318 300 0.1 15 2 18 1 2];
T=[54248 162787 168380 314797;
28614 63958 69637 82898;
86002 402710 644415 328084;
230802 445102 362823 335913;
60257 127892 76753 73541;
34615 93532 80762 110049;
56783 172907 164548 144040];
9907 117437 120368 130179];
m=max(max(P));
n=max(max(T));
P=P’/m;
T=T’/n;
%————————————————————————-%
pr(1:9,1)=0; %输入矢量的取值范围矩阵
pr(1:9,2)=1;
net=newff(pr,[12 4],{‘logsig’, ‘logsig’}, ‘traingdx’, ‘learngdm’);
%建立BP神经网络, 12个隐层神经元,4个输出神经元
%tranferFcn属性 ‘logsig’ 隐层采用Sigmoid传输函数
%tranferFcn属性 ‘logsig’ 输出层采用Sigmoid传输函数
%trainFcn属性 ‘traingdx’ 自适应调整学习速率附加动量因子梯度下降反向传播算法训练函数
%learn属性 ‘learngdm’ 附加动量因子的梯度下降学习函数
net.trainParam.epochs=40000;%允许最大训练步数40000步
net.trainParam.goal=0.001; %训练目标最小误差0.001
net.trainParam.show=10; %每间隔100步显示一次训练结果
net.trainParam.lr=0.05; %学习速率0.05
net=train(net,P,T);
%————————————————————————-
p=[110 1.318 300 0.1 15 2 18 1 2];
p=p’/m;
r=sim(bpnet,p);%进行预测
R=r’*n;
display(R);%预测结果
下面是保存优化好的神经网络和加载神经网络:
save('wbcnet','net');
load('-mat','wbcnet');
关于神经网络工具箱的使用,网上的资料很多,大家可以自行查看。
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>