贵阳手机网站建设公司,辽源网站建设,运城市住房与城乡建设厅网站,东莞北京网站建设价格最近写论文用到了很多神经网络和优化算法#xff0c;算是废了不少精力收集起来的#xff0c;还是整理出来分享给大家#xff0c;以免浪费了。 本篇以最简单的 BP神经网络开始吧 详细的实现步骤如下#xff1a;
1.环境准备#xff1a;清空环境变量、关闭开启的图窗、清空变… 最近写论文用到了很多神经网络和优化算法算是废了不少精力收集起来的还是整理出来分享给大家以免浪费了。 本篇以最简单的 BP神经网络开始吧 详细的实现步骤如下
1.环境准备清空环境变量、关闭开启的图窗、清空变量和命令行。
2.数据加载从 数据集.xlsx 文件中读取数据。
3.数据分析设定训练集占数据集比例、设定输出维度、计算样本个数、打乱数据集如果不希望打乱数据集可以注释相应的代码、计算训练集样本个数和输入特征维度。
4.划分训练集和测试集将数据集划分成训练集和测试集。
5.数据归一化对训练集和测试集的输入和输出进行归一化处理。
6.建立模型使用 newff 函数创建一个新的前馈神经网络。
7.设置参数设置神经网络的训练参数如最大迭代次数、误差阈值和学习率。
8.模型训练使用训练集对神经网络进行训练。
9.仿真测试使用训练好的神经网络对训练集和测试集进行预测。
10.数据反归一化将预测结果反归一化使其恢复到原始数据的范围。
11.绘图输出回归图和误差直方图计算各种评估指标如均方根误差 (RMSE)、决定系数 (R2)、均方误差 (MSE)、剩余预测残差 (RPD)、平均绝对误差 (MAE) 及平均绝对百分比误差 (MAPE)并分别对训练集和测试集结果进行绘图展示预测结果与真实值的对比。 这边只展示核心代码 %% 建立模型 S1 15; % 隐藏层节点个数 net newff(p_train, t_train, S1); %% 设置参数 net.trainParam.epochs 1000; % 最大迭代次数 net.trainParam.goal 1e-6; % 设置误差阈值 net.trainParam.lr 0.01; % 学习率 %% 模型训练 net.trainParam.showWindow 1; % 打开训练窗口 net train(net, p_train, t_train); % 训练模型 %% 仿真测试 t_sim1 sim(net, p_train); t_sim2 sim(net, p_test ); 详细解释如下 建立模型S1 15; net newff(p_train, t_train, S1); 该部分先定义隐藏层节点个数为 15然后使用 newff 函数创建一个新的前馈神经网络其中 p_train 是训练集的输入数据t_train 是训练集的目标数据S1 是隐藏层节点的个数。 设置参数net.trainParam.epochs 1000; net.trainParam.goal 1e-6; net.trainParam.lr 0.01; 设置训练参数其中最大迭代次数为 1000误差阈值为 1e-6学习率为 0.01。 模型训练net.trainParam.showWindow 1; net train(net, p_train, t_train); 首先打开训练窗口来显示训练过程然后使用 train 函数对神经网络进行训练其中 net 是前馈神经网络p_train 是训练集的输入数据t_train 是训练集的目标数据。 仿真测试t_sim1 sim(net, p_train); t_sim2 sim(net, p_test); 使用训练好的神经网络对训练集和测试集进行预测其中 sim 函数用于神经网络的预测net 是训练好的神经网络p_train 和 p_test 分别是训练集和测试集的输入数据t_sim1 和 t_sim2 分别是对训练集和测试集的预测结果。 完整的代码和数据见
https://github.com/dazhiwang233/matlab-implementation-of-BP-neural-networks