BP神经网络工具箱使用
文章内容部分参考自基于matlab实现BP算法的神经网络 - 阿璃阿狸 - 博客园 (cnblogs.com)
【数模国赛救急】11分钟学会matlab神经网络工具箱哔哩哔哩bilibili
一、概念
神经网络的本质就是进行数据的拟合,工作状态分为学习和工作两种状态,即训练和仿真两个步骤。
在训练阶段,给出输入数据与正确的输出数据,神经网络根据输入数据进行复杂的运算得出实际的输出数据,实际的输出数据与正确的输出数据之间的差别就叫做误差。
而BP算法就是会反向传播误差一层一层不断修正各层神经元之间的连接权值,正所谓信号的正向传播和误差的反向传播,直到误差在规定的范围内或运行次数达到规定的学习次数,
此时结束算法,否则选取下一个学习样本及对应的期望输出,返回进入下一轮学习。
仿真阶段,在经过训练阶段的大量样本数据训练之后,神经网络已经较为准确,输入数据,运行得出输出数据,此即为预测过程。
BP网络的训练就是通过应用误差反传原理不断调整网络权值,使网络模型输出值与已知的训练样本输出值之间的误差平方和达到最小或小于某一期望值的过程。
二、基本运用
1.拟合——>进行数据的预测
2.分类(包含评价)——>聚类分析
注意:运用神经网络的场景一定要样本数量很多的,不然训练会不准确,以下代码只是为了展示效果。
三、MATLAB BP神经网络工具箱使用步骤
第一步:数据导入
X代表输入数据,Y代表输出结果

第二步:使用神经网络工具箱构建模型
打开神经网络工具箱:nftool
然后按照下面截图一步一步操作:







绿色圆圈的那个点是MSE最小的点,记录下对应的w(权重)和b(阈值)用来预测




最后一个函数显示神经网络示意图:



第三步:进行预测
保存结果后,结果区出现了net,output,error(残差)
现在我们可以根据函数sim进行预测
我们把要预测的几组数据拿进来
代码:
>>Predict_Y=zeros(10,1);
fori=1:10
Predict_Y(i,1)=sim(net,Predict_X(i,:)');%这里需要转置
end
成功预测
>>disp(Predict_Y)
87.7623
87.6196
88.3190
85.3254
85.3956
84.5900
87.5035
87.2341
88.6420
87.3312
四、参数解读
1.、泛化性:
表示BP神经网络在训练过程中,如果均方误差(MSE)连续6次不降反升,则网络停止训练
2、误差精度:
关于mu参数含义的一种理解是,mu是误差精度参数,用于给神经网络的权重再加一个调制,这样可以避免在BP网络训练的过程中陷入局部最小值,mu的范围为0到1
3、实现BP网络预测的步骤
读取数据
设置训练数据和预测数据
训练样本数据归一化
构建BP神经网络
网络参数配置(训练次数,学习速率,训练目标最小误差.等)
BP神经网络训练
测试样本归一化
BP神经网络预测
预测结果反归一化与误差计算
验证集的真实值与预测值误差比较
