【数学建模】预测模型之BP网络预测

学习来源:清风老师
最简单的神经网络–Bp神经网络
利用MATLAB 2016a进行BP神经网络的预测(含有神经网络工具箱)
机器学习中的训练集,验证集和测试集【数学建模】预测模型之BP网络预测_第1张图片

机器学习中的训练集,验证集和测试集

训练集(Training set) —— 用于模型拟合的数据样本。
验证集(Validation set)—— 是模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估。在神经网络中,我们用验证数据集去寻找最优的网络深度,或者决定反向传播算法的停止点或者在神经网络中选择隐藏层
神经元的数量;
测试集(Testing set) —— 用来评估模最终模型的泛化能力。但不能作为调参、选择特征等算法相关的选择的依据。

例题1:辛烷值的预测

【数学建模】预测模型之BP网络预测_第2张图片

数据的导入

Excel操作小技巧:
选择某个单元格的数据,同时按住键盘上的Ctrl和Shift两个键不松手,然后按键盘上方向键“→”,就可以选择这个单元格所在的一行;然后再按键盘上的方向键“↓”,就可以再选取这一行所在的一整列
【数学建模】预测模型之BP网络预测_第3张图片

关键的步骤

【数学建模】预测模型之BP网络预测_第4张图片

【数学建模】预测模型之BP网络预测_第5张图片
莱文贝格-马夸特方法
贝叶斯正则化方法(推荐,但是慢)
量化共轭梯度法

结果分析

epoch:1个epoch等于使用训练集中的全部样本训练一次,每训练一次,神经网络
中的参数经过调整。 MSE: Mean Squared Error 均方误差 MSE = SSE/n 一般来说,经过更多的训练阶段后,误差会减小,但随着网络开始过度拟合训练数据,验证数据集的误差可能会开始增加。在默认设置中,在验证数据集的MSE连续增加六次后,训练停止,最佳模型对应于的最小的MSE

将拟合值对真实值回归,拟合优度越高,说明拟合的的效果越好。

保存结果,生成代码

【数学建模】预测模型之BP网络预测_第6张图片

【数学建模】预测模型之BP网络预测_第7张图片

保存结果并对进行预测

【数学建模】预测模型之BP网络预测_第8张图片

【数学建模】预测模型之BP网络预测_第9张图片

预测值为:
   87.8321
   87.3127
   88.4382
   85.1670
   85.3899
   84.1044
   87.0314
   86.6561
   88.6894
   87.3336

代码

load data_Octane.mat

% 利用训练出来的神经网络模型对数据进行预测
% 例如我们要预测编号为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)

例题2:神经网络在多输出中的运用(自带的数据集)

【数学建模】预测模型之BP网络预测_第10张图片
【数学建模】预测模型之BP网络预测_第11张图片

对于预测模型的看法

【数学建模】预测模型之BP网络预测_第12张图片
【数学建模】预测模型之BP网络预测_第13张图片

你可能感兴趣的:(数学建模,神经网络,matlab,机器学习)