神经网络回归预测中,如何保存训练好的网络,以预测新的数据集(以BP神经网络为例)—MATLAB实现

 一、前言(代码获取:底部公众号)

千呼万唤始出来!

一直以来有小伙伴在问:我现在已经有完整的代码了,预测效果也还可以,如何用来预测新数据呢,或者如何把这个训练好的网络保存下来,来预测一下没有实际输出数据集,其实很简单,但是在开始之前,先纠正一个定义:

验证集和测试集,目前绝大部分小伙伴理解的都不太正确,很多发表的文章中写的也不是很规范,当然这不怎么妨碍使用。目前我们一直在说的测试集,其实在真正的机器学习定义里算作验证集,有真实输出与神经网络的预测做对比,其实是验证集的功能,测试集在定义中是在实际使用时的数据集,是没有真实值的,要用训练好的网络来预测。

那么,训练集、验证集、测试集的作用分别是:

  • 训练集:用于供模型进行训练学习;
  • 验证集:用于验证训练的模型的好坏:
  • 测试集:模型训练完成,验证集验证结果好的话,再对未知数据进行预测。

ok,说了这么多,接下来如何修改代码!

二、如何修改代码

1. 以BP神经网络为例,BP的建立、参数设置、训练和预测过程如下:

% 构建BP
net=newff(inputn,outputn,hiddennum,{'tansig','purelin'},'trainlm');

% 网络参数设置
net.trainParam.epochs=1000;         % 训练次数
net.trainParam.lr=0.01;             % 学习速率
net.trainParam.goal=0.000001;       % 训练目标最小误差

% 网络训练
net=train(net,inputn,outputn);      

% 网络预测
an=sim(net,inputn_test);                     % 仿真预测
test_simu=mapminmax('reverse',an,outputps);  % 预测结果反归一化

2. 现在BP已经训练好了,如何保存下来呢,用 save 命令来保存 “net” ,此外,还需要将“inputps”和“outputps”,因为我们在新脚本中导入新数据后,还需要采用相同的归一化和反归一化方式。

save net; 
save inputps;
save outputps;

3. 保存下来后,在同一文件夹下,建立一个新的脚本,用 load 命令导入训练好的网络参数来进行预测,这里导入的“预测数据”里,是没有真实输出值的,只有各个因素变量。

% 加载网络参数
load net;  %加载训练好的网络模型net
load inputps;
load outputps;

% 导入新的预测数据集
data=xlsread('预测数据.xlsx'); 

% 新数据集归一化
inputn_test=mapminmax('apply',data',inputps);

% 仿真预测
an=sim(net,inputn_test); 

% 测试结果反归一化
test_simu=mapminmax('reverse',an,outputps); 

% 画图
figure
plot(test_simu,'bh-','linewidth',1.5,'markerfacecolor','b')
xlabel('测试集样本'),ylabel('预测值')

三、BP算法优化

BP算法优化
遗传算法  GA-BP灰狼算法  GWO-BP
鲸鱼算法  WOA-BP粒子群算法  PSO-BP
麻雀算法  SSA-BP布谷鸟算法  CS-BP

四、结语

本文是以BP为例,如果网络模型复杂的时候,保存的参数可能也比较多,需要注意的是变量命名时避免冲突,以及,以及具体问题具体分析。

它看起来虽然很容易,实际上一点也不难!

  • 12
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 20
    评论
BP神经网络是一种常用的人工神经网络模型,可用于数据回归预测问题。在MATLAB,可以使用神经网络工具箱来实现BP神经网络的数据回归预测。 首先,需要准备好训练数据和测试数据集训练数据集包括输入样本和对应的输出目标值,用于训练神经网络模型。测试数据集用于评估训练好的神经网络模型的预测性能。 接下来,在MATLAB创建一个神经网络模型,并设置模型的输入层、隐藏层和输出层的节点个数。可以使用“feedforwardnet”函数来创建反向传播神经网络模型。 然后,使用“train”函数对神经网络模型进行训练。在训练过程,需要选择合适的训练算法、学习率和停止条件等参数,以确保模型能够收敛并得到较好的预测结果。 在训练完成后,可以使用训练好的神经网络模型对测试数据进行预测。使用“sim”函数将测试数据输入神经网络模型,得到网络的输出结果。 最后,可以计算预测结果与实际目标值之间的误差,评估模型的预测性能。常用的评估指标包括均方误差(MSE)、决定系数(R-squared)等。 需要注意的是,在使用BP神经网络进行数据回归预测时,还需要对输入数据进行归一化处理,以避免不同量纲的特征对模型的影响不一致。可以使用MATLAB的“mapminmax”函数来实现数据归一化。 综上所述,以上是利用MATLAB神经网络工具箱实现BP神经网络的数据回归预测的大致流程。具体的代码实现需要根据具体的问题和数据集进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Matlab神经网络深度学习

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

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

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

打赏作者

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

抵扣说明:

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

余额充值