数学建模暑期集训12:神经网络预测——Neural Net Fitting工具箱的使用

在本专栏的第十三篇博文数学建模学习笔记(十三)神经网络——中:matlab程序实现记录过如何在matlab用代码进行神经网络的训练。
本篇内容将记录如何使用Neural Net Fitting工具箱,做神经网络预测时更为简便。

1.数据选取

例题:
在这里插入图片描述
原始数据:
在这里插入图片描述
导入数据到matlab:
新建变量,点击,复制相应数据。
在这里插入图片描述

2.工具箱的使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里有三种算法可供选择:
莱文贝格-马夸特方法(Levenberg–Marquardt algorithm)(梯度下降法)
贝叶斯正则化方法(Bayesian‐regularization)
量化共轭梯度法(Scaled Conjugate Gradient )

3.结果分析

在这里插入图片描述
注:设计验证集的概念就是判断什么时候会出现过拟合。图中自动画圈的地方是训练效果最好的次数,之后MSE上升,逐渐过拟合。

在这里插入图片描述
结果保存:
在这里插入图片描述
在这里插入图片描述

4.用模型进行预测

保存之后,工作区会多出文件:
在这里插入图片描述
写个循环,调用训练好的模型net,实现对数据的预测。
注,数据的输入需要注意,输入数据不合要求时,可能需要转置(默认以列输入)
下面是上面例题的预测代码:

load data_Octane.mat
% 尽量使用新版的Matlab
% 在Matlab的菜单栏点击APP,再点击Neural Fitting app.

% 利用训练出来的神经网络模型对数据进行预测
% 例如我们要预测编号为51的样本,其对应的401个吸光度为:new_X(1,:)
% sim(net, new_X(1,:))
% 错误使用 network/sim (line 266)
% Input data sizes do not match net.inputs{1}.size.
% net.inputs{1}.size
 
% 这里要注意,我们要将指标变为列向量,然后再用sim函数预测
sim(net, new_X(1,:)')

% 写一个循环,预测接下来的十个样本的辛烷值
predict_y = zeros(10,1); % 初始化predict_y
for i = 1: 10
    result = sim(net, new_X(i,:)');
    predict_y(i) = result;
end
disp('预测值为:')
disp(predict_y)

5.总结

神经网络是万金油的存在,即各种场景都可以用到神经网路。
缺点在于神经网路不易数学解释,对数学建模比赛而言不是最佳选择,当然,用作检验结果的正确与否还是非常值得一提的。

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zstar-_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值