首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数学建模暑期集训12:神经网络预测——Neural Net Fitting工具箱的使用

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

作者头像
zstar
发布2022-06-14 11:37:30
发布2022-06-14 11:37:30
1.5K00
代码可运行
举报
文章被收录于专栏:往期博文往期博文
运行总次数:0
代码可运行

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

1.数据选取

例题:

原始数据:

导入数据到matlab: 新建变量,点击,复制相应数据。

2.工具箱的使用

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

3.结果分析

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

结果保存:

4.用模型进行预测

保存之后,工作区会多出文件:

写个循环,调用训练好的模型net,实现对数据的预测。 注,数据的输入需要注意,输入数据不合要求时,可能需要转置(默认以列输入) 下面是上面例题的预测代码:

代码语言:javascript
代码运行次数:0
运行
复制
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.总结

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.数据选取
  • 2.工具箱的使用
  • 3.结果分析
  • 4.用模型进行预测
  • 5.总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档