神经网络算法介绍

人工神经网络是根据人的认识过程而开发出的一种算法。假如我们现在只有一些输入和相应的输出,而对如何由输入得到输出的机理并不清楚,那么我们可以把输入与输出之间的未知过程看成是一个“网络”。
通过不断地给这个网络输入和相应的输出来“训练”这个网络,网络根据输入和输出不断地调节自己的各节点之间的权值来满足输入和输出。这样,当训练结束后,我们给定一个输入,网络便会根据自己已调节好的权值计算出一个输出。
神经网络被人们称为万金油,作为群智能算法,其功能确实很多,可以作预测、评价等,但其对数据量也有一定要求。
下面是MATLAB神经网络代码讲解:
clear
clc
A=[
]; %%%%%指标的训练集
B=[
]; %%%%%输出1个指标的训练集
x=A’;
y=B’;
testx = [
]’ %%%预测时需要的输入值

n=6 %%%%自变量的个数
m=1 %%%%因变量的个数

p=x; %将所有自变量合并得到输入数据矩阵
t=y; %将所有因变量合并目标数据矩阵
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); % 对于输入矩阵p和输出矩阵t进行归一化处理
u=ones(n,1);
dx=[-1u,1u]; %归一化处理后最小值为-1,最大值为1
%BP网络训练
net=newff(dx,[n,15,m],{‘tansig’,‘tansig’,‘purelin’},‘traingdx’); %建立模型,并用梯度下降法训练.

net.trainParam.show=1000; %1000轮回显示一次结果
net.trainParam.Lr=0.05; %学习速度为0.05
net.trainParam.epochs=50000; %最大训练轮回为50000次
net.trainParam.goal=0.65*10^(-3); %均方误差
net=train(net,pn,tn); %开始训练,其中pn,tn分别为输入输出样本
%利用原始数据对BP网络仿真
an=sim(net,pn); %用训练好的模型进行仿真
a=postmnmx(an,mint,maxt); % 把仿真得到的数据还原为原始的数

x=1:length(y);
yucey1=a(1,:); %%%% 指标A的预测值
figure ;
subplot(1,1,1);plot(x,y(1,:),‘r-o’,x,yucey1,‘b–+’) %绘制因指标A的对比图;
legend(‘银行综合值的预测值’,‘银行综合值实际值’);
xlabel(‘银行’);ylabel(‘银行综合值’);

% 当用训练好的网络对新数据pnew进行预测时,也应作相应的处理:

pnew=testx; %%输入自变量的参数,每一行表示一个自变量,列数表示预测的个数

pnewn=tramnmx(pnew,minp,maxp); %利用原始输入数据的归一化参数对新数据进行归一化;
anewn=sim(net,pnewn); %利用归一化后的数据进行仿真;
anew=postmnmx(anewn,mint,maxt) %把仿真得到的数据还原为原始的数量级;
Y1=anew(1,:); %%%因变量A的预测值
% 显示预测值
disp(’ 预测值:‘)
Y1’
神经网络算法可以输入多个指标,只需要几行代码就可以实现神经网络算法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

保驾护航团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值