神经网络的matlab使用

    xiaoxiao2026-08-16  1

    首先明确几点: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;

    转载请注明原文地址: https://ju.6miu.com/read-1311242.html
    最新回复(0)