神经网络的matlab使用

来源:互联网 发布:优步抢单软件 编辑:程序博客网 时间:2024/06/07 01:44

首先明确几点: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)+5pnew=mapminmax('apply',p,input_str);anew=sim(net,pnew);anew=mapminmax('reverse',anew,output_str);s=anew;


0 0
原创粉丝点击