神经网络的matlab使用

首先明确几点:1,神经网络的用处是当我不知道自变量与因变量是什么联系才用的,如果已知是线性或二次可采用其他方式拟合.

                         2,神经网络相当于一个黑盒子,里面的运算过程是封闭的,也就是得不到关系式(事实上就算得到每个神经元的权值也需要再次逼近,没意义的)。

神经网络的Python包可以采用pybrain,具体参看http://blog.csdn.net/fengsigaoju/article/details/51702527

对于数模的小伙伴们,可以采用以下matlab代码:

x=[1,2,3,4,5];//输入矩阵(一行就是一个变量,如果有n个变量m组数据就是n*m的矩阵,这里是一个变量,5组数据)
y=[2,3,4,5,6];//输出矩阵 (同上,这里是1个输出变量,5组输出数据)
[pn,input_str]=mapminmax(x);//输入数据归一化
[tn,output_str]=mapminmax(y);//输出数据归一化
net=newff(pn,tn,[3,7,2],{'purelin','logsig','purelin'});
net.trainParam.epochs=1000;//最大迭代次数
net.divideFcn='';//如果超过六次迭代没有变化就会停止,用这个命令取消。
net.trainParam.lr=0.05;//学习速度
net=train(net,pn,tn);//开始训练
an=sim(net,pn);
a=mapminmax('reverse',an,output_str);
plot(x,a);//画出当前图形(自变量和因变量)
p=max(x)+1:max(x)+5;(往后预测5个)
pnew=mapminmax('apply',p,input_str);//把准备预测的数据归一化(就是自变量)
anew=sim(net,pnew);
anew=mapminmax('reverse',anew,output_str);//把预测的数据还原会原数量级<pre name="code" class="plain">





如果有多重数据需要拟合或者预测,可以写成函数调用。


function s=ceshi(x,y)%%预测后五周
x=x';//注意输入的如果是列向量要改成行向量
y=y';
[pn,input_str]=mapminmax(x);
[tn,output_str]=mapminmax(y);
net=newff(pn,tn,[3,7,2],{'purelin','logsig','purelin'});
net.trainParam.epochs=1000;
net.divideFcn='';
net.trainParam.lr=0.05;
net=train(net,pn,tn);
an=sim(net,pn);
a=mapminmax('reverse',an,output_str);
plot(x,a);
p=max(x)+1:max(x)+5
pnew=mapminmax('apply',p,input_str);
anew=sim(net,pnew);
anew=mapminmax('reverse',anew,output_str);
s=anew;


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值