
模型归一化,预测肯定也要反归一化。输出再反归一化就好了。比如,一组训练的数据,有最大值max,最小值min,假设区间长度cd=max-min。归一化就是(x-min)/cd,反归一化就是xcd+min
plot(x1,x2,;DisplayName;,;x2 vs x1;,;XDataSource;,;x1;,;YDataSource;,;x2;);figure(gcf)x1,x2就是2组数据。
神经网络最开始是机器学习的一种模型,但其训练的时间和其他几种模型相比不占优势,且结果也不尽人意,所以一直没有被广泛使用。但随着数学的深入研究以及计算机硬件质量的提高,尤其是GPU的出现,给深度学习的广泛应用提供了基础。GPU最初是为了给游戏玩家带来高质量的视觉体验,由于其处理矩阵运算的能力特别优秀,也被用于深度学习中模型的训练,以往数十天才能训练好的模型在GPU上训练几天就可以训练好,大大减少了深度学习的训练时间,因而深度学习的应用越来越多。
神经网络作为深度学习最主要的模型,人工神经网络ANN是最基础的神经网络结构,其工作原理很像人类大脑中的神经。神经元是ANN的工作单元,每个神经元含有权重和偏置,神经元将上一层神经元传递过来的值通过权重和偏置的运算,得到新的结果,将该结果传递给下一层神经元,通过不断的传递,最终获得输出结果。
要想用神经网络实现连续型变量的回归预测,需要将该N维变量的数据作为输入,中间再设置隐藏层和每一层的神经元个数,至于隐藏层的层数则需要多次训练才能得出较准确的层数。而最后输出层的值和实际变量的值会有误差,神经网络会通过不断地训练,更改权重和偏置的值来使误差尽可能的小,当误差小到一定程度,该神经网络的回归预测就算成功了。
通常使用Python来搭建神经网络,Python自带深度学习的一些库,在进行回归预测时,我们只需用调用函数,设定几个参数,如隐藏层层数和神经元个数等,剩下的就是等模型自行训练,最终便能完成回归预测,非常的方便。
首先数据初始化[nb,minb,maxb,na,mina,maxa]=premnmx(traindata,trainlabels);
[nc,minc,maxc]=premnmx(testdata);
用这个函数newff就可以得到BP神经网络模型
net=newff(minmax(traindata),[7,1],{'tansig','purelin'});
参数可以用默认的,具体参数可以help一下看看如何设置
训练神经网络
net=train(net,nb,na); 测试输出
nd= sim(net,nc);
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)