首页 > 其他分享 >数学建模_BP神经网络预测新数据模型(多输入单输出)回归预测模型+Matlab代码包教会使用,直接替换数据即可

数学建模_BP神经网络预测新数据模型(多输入单输出)回归预测模型+Matlab代码包教会使用,直接替换数据即可

时间:2024-11-08 15:44:49浏览次数:3  
标签:num 训练 train BP Matlab 归一化 test net 数据模型

基于BP神经网络新数据预测的多输入单输出回归预测模型简介

这段代码实现了一个BP神经网络Backpropagation Neural Network用于回归预测任务,并包含新数据的预测功能。该模型通过多层前馈神经网络学习输入特征与目标变量之间的非线性映射关系,并使用反向传播算法优化权重和偏置。下面是对代码各部分的详细讲解:


1. 环境准备与数据导入

close all;
clear;
clc;
rng(2222);  % 结果可复现

res = readmatrix('回归数据.xlsx');
  • 清理环境:关闭所有图窗,清空工作区和命令行。
  • 固定随机数种子:使用 rng(2222) 确保每次运行时数据划分和模型结果一致。
  • 数据导入:从 Excel 文件 回归数据.xlsx 中读取数据,假设最后一列是目标变量,前面的列为输入特征。

2. 数据归一化

X = res(:, 1:end-1);  
Y = res(:, end);    
[x, psin] = mapminmax(X', 0, 1);  % 对输入特征进行归一化
[y, psout] = mapminmax(Y', 0, 1); % 对目标变量进行归一化
  • 数据归一化:使用 mapminmax 将输入特征和目标变量归一化到 [0, 1] 区间。归一化可以消除不同特征量纲对模型训练的影响,并加快收敛速度。
  • 保存归一化参数psinpsout 保存归一化的参数,后续进行新数据预测时需要用到。

3. 划分训练集和测试集

num = size(res, 1);   % 获取总样本数
k = input('是否打乱样本(是:1,否:0):');  % 用户选择是否打乱样本
if k == 0
   state = 1:num;     % 不打乱样本
else
   state = randperm(num);  % 随机打乱样本
end

ratio = 0.8;  % 训练集占比
train_num = floor(num * ratio);

x_train = x(:, state(1:train_num));
y_train = y(state(1:train_num));
trainnum = size(x_train, 2);

x_test = x(:, state(train_num+1:end));
y_test = y(state(train_num+1:end));
testnum = size(x_test, 2);
  • 随机打乱数据:通过 randperm 函数随机打乱样本索引,防止因样本顺序性导致模型偏差。
  • 划分数据集:按照 80% 的训练集和 20% 的测试集比例进行划分。

4. 创建神经网络并设置训练参数

hiddens = 4;  % 隐藏层神经元数量
tf = {'tansig', 'purelin'};  % 激活函数,隐藏层为tansig,输出层为purelin
net = newff(x_train, y_train, hiddens, tf);

net.trainParam.epochs = 1000;  % 最大迭代次数
net.trainParam.goal = 1e-6;    % 误差目标
net.trainParam.lr = 0.01;      % 学习率
  • 网络结构
    • 输入层:接受归一化后的输入特征。
    • 隐藏层:包含 4 个神经元,使用 tansig 激活函数(双曲正切函数),用于引入非线性特征。
    • 输出层:使用 purelin 激活函数(线性函数),适合回归任务。
  • 训练参数
    • epochs:最大迭代次数。
    • goal:目标误差,达到此误差时停止训练。
    • lr:学习率,控制权重更新的步长。

5. 训练神经网络与仿真测试

net = train(net, x_train, y_train);  % 使用训练集数据训练网络

re1 = sim(net, x_train);  % 训练集仿真预测
re2 = sim(net, x_test);   % 测试集仿真预测
  • 网络训练:使用 train 函数训练网络,通过反向传播算法优化权重。
  • 仿真测试:使用 sim 函数对训练集和测试集进行仿真预测,得到归一化后的预测结果。

6. 反归一化与误差计算

pre1 = mapminmax('reverse', re1, psout);  % 反归一化训练集预测值
pre2 = mapminmax('reverse', re2, psout);  % 反归一化测试集预测值

error1 = sqrt(sum((pre1 - Y_train).^2) / trainnum);  % 训练集RMSE
error2 = sqrt(sum((pre2 - Y_test).^2) / testnum);    % 测试集RMSE

R1 = 1 - norm(Y_train - pre1)^2 / norm(Y_train - mean(Y_train))^2;  % 训练集R²
R2 = 1 - norm(Y_test - pre2)^2 / norm(Y_test - mean(Y_test))^2;     % 测试集R²

mae1 = mean(abs(Y_train - pre1));  % 训练集MAE
mae2 = mean(abs(pre2 - Y_test));   % 测试集MAE
  • 反归一化:将预测值恢复到原始尺度。
  • 评估指标
    • RMSE(均方根误差):衡量预测值与真实值的差异,值越小表示模型效果越好。
    • R²(决定系数):表示模型的拟合优度,越接近1表示模型拟合效果越好。
    • MAE(平均绝对误差):衡量预测值与真实值之间的平均绝对差异。

7. 结果可视化与拟合图

figure;
plot(1:trainnum, Y_train, 'r-^', 1:trainnum, pre1, 'b-+', 'LineWidth', 1);
legend('真实值', '预测值');
xlabel('样本点');
ylabel('预测值');
title('训练集预测结果对比');

figure;
plot(1:testnum, Y_test, 'r-^', 1:testnum, pre2, 'b-+', 'LineWidth', 1);
legend('真实值', '预测值');
xlabel('样本点');
ylabel('预测值');
title('测试集预测结果对比');
  • 绘制训练集和测试集的预测结果对比图,直观展示模型效果。

8. 新数据预测与保存

newdata = xlsread("新的多输入.xlsx");
newy = newpre(newdata, psin, psout, net);

figure;
plot(newy);
xlabel('样本点');
ylabel('预测值');

xlswrite("新的输出.xlsx", newy);

function y = newpre(newdata, psin, psout, net)
    x = mapminmax('apply', newdata', psin);  % 归一化新数据
    pre = sim(net, x);                       % 预测
    y = mapminmax('reverse', pre, psout);    % 反归一化
end
  • 新数据预测:加载新的输入数据,进行归一化处理,然后使用训练好的神经网络进行预测,最后反归一化得到预测结果。
  • 结果保存:将预测结果保存到 新的输出.xlsx 文件中。

总结

该模型使用BP神经网络进行多输入单输出回归预测,流程包括:

  1. 数据预处理(归一化)。
  2. 创建并训练BP神经网络。
  3. 进行仿真预测并评估模型性能。
  4. 新数据预测功能扩展。

该模型能够捕捉输入特征与输出目标之间的非线性关系,并提供了良好的预测效果。

Matlab代码手把手教运行

为了帮助更多的萌新更快上手数学建模建等竞赛,这里直接手把手教会如何直接使用本文中的BP神经网络代码:

close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行

%随机数种子固定结果
rng(2222)

%%  导入数据
res = readmatrix('回归数据.xlsx');

%%  数据归一化 索引
X = res(:,1:end-1);
Y = res(:,end);
[x,psin]= mapminmax(X', 0, 1);
%保留归一化后相关参数
[y, psout] = mapminmax(Y', 0, 1);

%%  划分训练集和测试集
num = size(res,1);%总样本数
k = input('是否打乱样本(是:1,否:0):');
if k == 0
   state = 1:num; %不打乱样本
else
   state = randperm(num); %打乱样本
end
ratio = 0.8; %训练集占比
train_num = floor(num*ratio);

x_train = x(:,state(1: train_num));
y_train = y(state(1: train_num));
trainnum = size(x_train, 2);

x_test = x(:,state(train_num+1: end));
y_test = y(state(train_num+1: end));
testnum = size(x_test, 2);

%%  创建网络
hiddens = 4; %隐藏层个数
% 激活函数(传递函数):隐藏层为双曲正切函数,输出层为线性函数
tf = {'tansig', 'purelin'};
net = newff(x_train, y_train, hiddens,tf);

%%  设置训练参数
net.trainParam.epochs = 1000;     % 迭代次数 
net.trainParam.goal = 1e-6;       % 误差阈值
net.trainParam.lr = 0.01;         % 学习率

%%  训练网络
net= train(net, x_train, y_train);

%%  仿真测试
re1 = sim(net, x_train);
re2 = sim(net, x_test );

%%  数据反归一化
%实际值
Y_train = Y(state(1: train_num))';
Y_test = Y(state(train_num+1:end))';

%预测值
pre1 = mapminmax('reverse', re1, psout);
pre2 = mapminmax('reverse', re2, psout);

%%  均方根误差
error1 = sqrt(sum((pre1 - Y_train).^2) ./ trainnum);
error2 = sqrt(sum((pre2 - Y_test).^2) ./ testnum);

%% 相关指标计算
% R2
R1 = 1 - norm(Y_train - pre1)^2 / norm(Y_train - mean(Y_train))^2;
R2 = 1 - norm(Y_test -  pre2)^2 / norm(Y_test -  mean(Y_test ))^2;

%  MAE
mae1 = mean(abs(Y_train - pre1 ));
mae2 = sum(abs(pre2 - Y_test )) ./ testnum ;

disp('训练集预测精度指标如下:')
disp(['训练集数据的R2为:', num2str(R1)])
disp(['训练集数据的MAE为:', num2str(mae1)])
disp(['训练集数据的RMSE为:', num2str(error1)])
disp('测试集预测精度指标如下:')
disp(['测试集数据的R2为:', num2str(R2)])
disp(['测试集数据的MAE为:', num2str(mae2)])
disp(['测试集数据的RMSE为:', num2str(error2)])

figure
plot(1: trainnum, Y_train, 'r-^', 1: trainnum, pre1, 'b-+', 'LineWidth', 1)
legend('真实值','预测值')
xlabel('样本点')
ylabel('预测值')
title('训练集预测结果对比')

%%画图
figure
plot(1: testnum, Y_test, 'r-^', 1: testnum, pre2, 'b-+', 'LineWidth', 1)
legend('真实值','预测值')
xlabel('样本点')
ylabel('预测值')
title('测试集预测结果对比')

%% 训练集百分比误差图
figure
plot((pre1 - Y_train )./Y_train, 'b-o', 'LineWidth', 1)
legend('百分比误差')
xlabel('样本点')
ylabel('误差')
title('训练集百分比误差曲线')

%% 测试集百分比误差图
figure
plot((pre2 - Y_test )./Y_test, 'b-o', 'LineWidth', 1)
legend('百分比误差')
xlabel('样本点')
ylabel('误差')
title('测试集百分比误差曲线')

%%  拟合图
figure;
plotregression(Y_train, pre1, '训练集', ...
               Y_test, pre2, '测试集');
set(gcf,'Toolbar','figure');

%% 新数据预测
newdata = xlsread("新的多输入.xlsx");
newy = newpre(newdata,psin,psout,net);
figure
plot(newy)
xlabel('样本点')
ylabel('预测值')
%保存数据
xlswrite("新的输出.xlsx",newy)

function y = newpre(newdata,psin,psout,net)
   %归一化
   x= mapminmax('apply',newdata',psin);
   %预测
   pre = sim(net,x);
   %反归一化
   y = mapminmax('reverse',pre,psout);
end

回归数据:

x1x2x3x4x5y
3.0362265613.881217.47568.4348316.8209348.47907612
4.3916588450.278231.623160.4768310.720564.12185185
5.2485978634.475232.985468.7401111.5485667.67148734
5.1212367253.694244.469265.3606114.3619159.32753057
4.6490218647.125268.305263.8013212.0485767.98570391
4.2672095445.033257.770161.689977.05562546.47506598
4.8045125848.875234.096867.144677.65613447.18442579
3.8258036583.543270.757561.4445316.6565454.0487296
4.7875349546.304225.827967.8935111.4366569.90372309
5.5807975481.803287.904362.2043211.2692747.32012957
3.6589199482.116278.809361.2021712.3741871.68429695
3.8299859128.034225.218764.8142316.7046168.18735427
5.2957856804.695282.694767.1343413.6187158.0309376
5.5543085340.983277.283369.394667.80435248.77931811
3.1595798717.524209.913366.7386216.30867.56410903
5.8447345505.52243.112465.762418.69319246.93770398
5.7373735589.905276.005662.248999.41583348.31135809

新的多输入:

x1x2x3x4x5
3.0362256975613.880847217.474976668.43482616.82093022
4.3916580778450.277811231.623089660.4768323710.72049796
4.1906122099183.68358268.510108365.8180771411.31416933
3.1924095387145.774935204.276159168.2326531116.12005693
5.1062369846826.718563274.117659360.7479975514.20697077
5.8090904216765.690215222.187623967.679680499.260744716
4.7777224397993.831685245.455181367.6459958513.58951137
5.1844081467506.190596298.051563964.240220187.050704835
4.5388311958374.906187213.576927268.880671519.818275412
5.5086131088046.183506215.520256466.1907509311.48545231
3.6541878947087.124893227.665602563.7807406915.86881946
3.427725685338.826759282.41521863.867884558.931207673
4.3795876177994.928315253.039530269.392087947.523716705
4.0468507277794.631267233.166341864.1435496213.91683729
3.7486832826763.92965288.611932767.8721524910.32552853

数据表格模型这个放即可 无需修改代码!

基于BP神经网络新数据预测的多输入单输出回归预测模型简介

这段代码实现了一个**BP神经网络(Backpropagation Neural Network)**用于回归预测任务,并包含新数据的预测功能。该模型通过多层前馈神经网络学习输入特征与目标变量之间的非线性映射关系,并使用反向传播算法优化权重和偏置。下面是对代码各部分的详细讲解:


1. 环境准备与数据导入

close all;
clear;
clc;
rng(2222);  % 结果可复现

res = readmatrix('回归数据.xlsx');
  • 清理环境:关闭所有图窗,清空工作区和命令行。
  • 固定随机数种子:使用 rng(2222) 确保每次运行时数据划分和模型结果一致。
  • 数据导入:从 Excel 文件 回归数据.xlsx 中读取数据,假设最后一列是目标变量,前面的列为输入特征。

2. 数据归一化

X = res(:, 1:end-1);  
Y = res(:, end);    
[x, psin] = mapminmax(X', 0, 1);  % 对输入特征进行归一化
[y, psout] = mapminmax(Y', 0, 1); % 对目标变量进行归一化
  • 数据归一化:使用 mapminmax 将输入特征和目标变量归一化到 [0, 1] 区间。归一化可以消除不同特征量纲对模型训练的影响,并加快收敛速度。
  • 保存归一化参数psinpsout 保存归一化的参数,后续进行新数据预测时需要用到。

3. 划分训练集和测试集

num = size(res, 1);   % 获取总样本数
k = input('是否打乱样本(是:1,否:0):');  % 用户选择是否打乱样本
if k == 0
   state = 1:num;     % 不打乱样本
else
   state = randperm(num);  % 随机打乱样本
end

ratio = 0.8;  % 训练集占比
train_num = floor(num * ratio);

x_train = x(:, state(1:train_num));
y_train = y(state(1:train_num));
trainnum = size(x_train, 2);

x_test = x(:, state(train_num+1:end));
y_test = y(state(train_num+1:end));
testnum = size(x_test, 2);
  • 随机打乱数据:通过 randperm 函数随机打乱样本索引,防止因样本顺序性导致模型偏差。
  • 划分数据集:按照 80% 的训练集和 20% 的测试集比例进行划分。

4. 创建神经网络并设置训练参数

hiddens = 4;  % 隐藏层神经元数量
tf = {'tansig', 'purelin'};  % 激活函数,隐藏层为tansig,输出层为purelin
net = newff(x_train, y_train, hiddens, tf);

net.trainParam.epochs = 1000;  % 最大迭代次数
net.trainParam.goal = 1e-6;    % 误差目标
net.trainParam.lr = 0.01;      % 学习率
  • 网络结构
    • 输入层:接受归一化后的输入特征。
    • 隐藏层:包含 4 个神经元,使用 tansig 激活函数(双曲正切函数),用于引入非线性特征。
    • 输出层:使用 purelin 激活函数(线性函数),适合回归任务。
  • 训练参数
    • epochs:最大迭代次数。
    • goal:目标误差,达到此误差时停止训练。
    • lr:学习率,控制权重更新的步长。

5. 训练神经网络与仿真测试

net = train(net, x_train, y_train);  % 使用训练集数据训练网络

re1 = sim(net, x_train);  % 训练集仿真预测
re2 = sim(net, x_test);   % 测试集仿真预测
  • 网络训练:使用 train 函数训练网络,通过反向传播算法优化权重。
  • 仿真测试:使用 sim 函数对训练集和测试集进行仿真预测,得到归一化后的预测结果。

6. 反归一化与误差计算

pre1 = mapminmax('reverse', re1, psout);  % 反归一化训练集预测值
pre2 = mapminmax('reverse', re2, psout);  % 反归一化测试集预测值

error1 = sqrt(sum((pre1 - Y_train).^2) / trainnum);  % 训练集RMSE
error2 = sqrt(sum((pre2 - Y_test).^2) / testnum);    % 测试集RMSE

R1 = 1 - norm(Y_train - pre1)^2 / norm(Y_train - mean(Y_train))^2;  % 训练集R²
R2 = 1 - norm(Y_test - pre2)^2 / norm(Y_test - mean(Y_test))^2;     % 测试集R²

mae1 = mean(abs(Y_train - pre1));  % 训练集MAE
mae2 = mean(abs(pre2 - Y_test));   % 测试集MAE
  • 反归一化:将预测值恢复到原始尺度。
  • 评估指标
    • RMSE(均方根误差):衡量预测值与真实值的差异,值越小表示模型效果越好。
    • R²(决定系数):表示模型的拟合优度,越接近1表示模型拟合效果越好。
    • MAE(平均绝对误差):衡量预测值与真实值之间的平均绝对差异。

7. 结果可视化与拟合图

figure;
plot(1:trainnum, Y_train, 'r-^', 1:trainnum, pre1, 'b-+', 'LineWidth', 1);
legend('真实值', '预测值');
xlabel('样本点');
ylabel('预测值');
title('训练集预测结果对比');

figure;
plot(1:testnum, Y_test, 'r-^', 1:testnum, pre2, 'b-+', 'LineWidth', 1);
legend('真实值', '预测值');
xlabel('样本点');
ylabel('预测值');
title('测试集预测结果对比');
  • 绘制训练集和测试集的预测结果对比图,直观展示模型效果。

8. 新数据预测与保存

newdata = xlsread("新的多输入.xlsx");
newy = newpre(newdata, psin, psout, net);

figure;
plot(newy);
xlabel('样本点');
ylabel('预测值');

xlswrite("新的输出.xlsx", newy);

function y = newpre(newdata, psin, psout, net)
    x = mapminmax('apply', newdata', psin);  % 归一化新数据
    pre = sim(net, x);                       % 预测
    y = mapminmax('reverse', pre, psout);    % 反归一化
end
  • 新数据预测:加载新的输入数据,进行归一化处理,然后使用训练好的神经网络进行预测,最后反归一化得到预测结果。
  • 结果保存:将预测结果保存到 新的输出.xlsx 文件中。

总结

该模型使用BP神经网络进行多输入单输出回归预测,流程包括:

  1. 数据预处理(归一化)。
  2. 创建并训练BP神经网络。
  3. 进行仿真预测并评估模型性能。
  4. 新数据预测功能扩展。

该模型能够捕捉输入特征与输出目标之间的非线性关系,并提供了良好的预测效果。

Matlab代码手把手教运行

为了帮助更多的萌新更快上手数学建模建等竞赛,这里直接手把手教会如何直接使用本文中的BP神经网络代码:

close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行

%随机数种子固定结果
rng(2222)

%%  导入数据
res = readmatrix('回归数据.xlsx');

%%  数据归一化 索引
X = res(:,1:end-1);
Y = res(:,end);
[x,psin]= mapminmax(X', 0, 1);
%保留归一化后相关参数
[y, psout] = mapminmax(Y', 0, 1);

%%  划分训练集和测试集
num = size(res,1);%总样本数
k = input('是否打乱样本(是:1,否:0):');
if k == 0
   state = 1:num; %不打乱样本
else
   state = randperm(num); %打乱样本
end
ratio = 0.8; %训练集占比
train_num = floor(num*ratio);

x_train = x(:,state(1: train_num));
y_train = y(state(1: train_num));
trainnum = size(x_train, 2);

x_test = x(:,state(train_num+1: end));
y_test = y(state(train_num+1: end));
testnum = size(x_test, 2);

%%  创建网络
hiddens = 4; %隐藏层个数
% 激活函数(传递函数):隐藏层为双曲正切函数,输出层为线性函数
tf = {'tansig', 'purelin'};
net = newff(x_train, y_train, hiddens,tf);

%%  设置训练参数
net.trainParam.epochs = 1000;     % 迭代次数 
net.trainParam.goal = 1e-6;       % 误差阈值
net.trainParam.lr = 0.01;         % 学习率

%%  训练网络
net= train(net, x_train, y_train);

%%  仿真测试
re1 = sim(net, x_train);
re2 = sim(net, x_test );

%%  数据反归一化
%实际值
Y_train = Y(state(1: train_num))';
Y_test = Y(state(train_num+1:end))';

%预测值
pre1 = mapminmax('reverse', re1, psout);
pre2 = mapminmax('reverse', re2, psout);

%%  均方根误差
error1 = sqrt(sum((pre1 - Y_train).^2) ./ trainnum);
error2 = sqrt(sum((pre2 - Y_test).^2) ./ testnum);

%% 相关指标计算
% R2
R1 = 1 - norm(Y_train - pre1)^2 / norm(Y_train - mean(Y_train))^2;
R2 = 1 - norm(Y_test -  pre2)^2 / norm(Y_test -  mean(Y_test ))^2;

%  MAE
mae1 = mean(abs(Y_train - pre1 ));
mae2 = sum(abs(pre2 - Y_test )) ./ testnum ;

disp('训练集预测精度指标如下:')
disp(['训练集数据的R2为:', num2str(R1)])
disp(['训练集数据的MAE为:', num2str(mae1)])
disp(['训练集数据的RMSE为:', num2str(error1)])
disp('测试集预测精度指标如下:')
disp(['测试集数据的R2为:', num2str(R2)])
disp(['测试集数据的MAE为:', num2str(mae2)])
disp(['测试集数据的RMSE为:', num2str(error2)])

figure
plot(1: trainnum, Y_train, 'r-^', 1: trainnum, pre1, 'b-+', 'LineWidth', 1)
legend('真实值','预测值')
xlabel('样本点')
ylabel('预测值')
title('训练集预测结果对比')

%%画图
figure
plot(1: testnum, Y_test, 'r-^', 1: testnum, pre2, 'b-+', 'LineWidth', 1)
legend('真实值','预测值')
xlabel('样本点')
ylabel('预测值')
title('测试集预测结果对比')

%% 训练集百分比误差图
figure
plot((pre1 - Y_train )./Y_train, 'b-o', 'LineWidth', 1)
legend('百分比误差')
xlabel('样本点')
ylabel('误差')
title('训练集百分比误差曲线')

%% 测试集百分比误差图
figure
plot((pre2 - Y_test )./Y_test, 'b-o', 'LineWidth', 1)
legend('百分比误差')
xlabel('样本点')
ylabel('误差')
title('测试集百分比误差曲线')

%%  拟合图
figure;
plotregression(Y_train, pre1, '训练集', ...
               Y_test, pre2, '测试集');
set(gcf,'Toolbar','figure');

%% 新数据预测
newdata = xlsread("新的多输入.xlsx");
newy = newpre(newdata,psin,psout,net);
figure
plot(newy)
xlabel('样本点')
ylabel('预测值')
%保存数据
xlswrite("新的输出.xlsx",newy)

function y = newpre(newdata,psin,psout,net)
   %归一化
   x= mapminmax('apply',newdata',psin);
   %预测
   pre = sim(net,x);
   %反归一化
   y = mapminmax('reverse',pre,psout);
end

回归数据:

x1x2x3x4x5y
3.0362265613.881217.47568.4348316.8209348.47907612
4.3916588450.278231.623160.4768310.720564.12185185
5.2485978634.475232.985468.7401111.5485667.67148734
5.1212367253.694244.469265.3606114.3619159.32753057
4.6490218647.125268.305263.8013212.0485767.98570391
4.2672095445.033257.770161.689977.05562546.47506598
4.8045125848.875234.096867.144677.65613447.18442579
3.8258036583.543270.757561.4445316.6565454.0487296
4.7875349546.304225.827967.8935111.4366569.90372309
5.5807975481.803287.904362.2043211.2692747.32012957
3.6589199482.116278.809361.2021712.3741871.68429695
3.8299859128.034225.218764.8142316.7046168.18735427
5.2957856804.695282.694767.1343413.6187158.0309376
5.5543085340.983277.283369.394667.80435248.77931811
3.1595798717.524209.913366.7386216.30867.56410903
5.8447345505.52243.112465.762418.69319246.93770398
5.7373735589.905276.005662.248999.41583348.31135809

新的多输入:

x1x2x3x4x5
3.0362256975613.880847217.474976668.43482616.82093022
4.3916580778450.277811231.623089660.4768323710.72049796
4.1906122099183.68358268.510108365.8180771411.31416933
3.1924095387145.774935204.276159168.2326531116.12005693
5.1062369846826.718563274.117659360.7479975514.20697077
5.8090904216765.690215222.187623967.679680499.260744716
4.7777224397993.831685245.455181367.6459958513.58951137
5.1844081467506.190596298.051563964.240220187.050704835
4.5388311958374.906187213.576927268.880671519.818275412
5.5086131088046.183506215.520256466.1907509311.48545231
3.6541878947087.124893227.665602563.7807406915.86881946
3.427725685338.826759282.41521863.867884558.931207673
4.3795876177994.928315253.039530269.392087947.523716705
4.0468507277794.631267233.166341864.1435496213.91683729
3.7486832826763.92965288.611932767.8721524910.32552853

数据表格模型这个放即可 无需修改代码!

标签:num,训练,train,BP,Matlab,归一化,test,net,数据模型
From: https://blog.csdn.net/2401_82466443/article/details/143628599

相关文章

  • 数学建模_BP神经网络模型(多输入单输出)回归预测模型+Matlab代码包教会使用,直接替换
    基于BP神经网络的多输入单输出回归预测模型简介该模型使用了BP神经网络BackpropagationNeuralNetwork进行多输入单输出的回归预测。BP神经网络是一种常见的多层前馈神经网络,通过反向传播算法来优化权重和偏置,从而最小化预测误差。具体模型原理就不再细说了,需要可以翻看......
  • 改进的蜣螂算法(IDBO)优化长短期记忆神经网络原理及MATLAB代码复现
    目录0引言1数学模型2模型性能可视化3MATLAB代码3.1伪代码程序图3.2IDBO-LSTM0引言针对DBO全局探索能力不足、易陷入局部最优以及收敛精度不理想等问题,有学者提出了一种混合多策略改进的蜣螂优化算法(IDBO)。该算法采用混沌映射结合随机反向学习策略初始化种群提......
  • 改进的蜣螂算法(IDBO)优化支持向量机原理及MATLAB代码复现
    目录0引言1数学模型2模型性能可视化3MATLAB代码3.1伪代码程序图3.2IDBO-SVR、IDBO-SVM0引言针对DBO全局探索能力不足、易陷入局部最优以及收敛精度不理想等问题,有学者提出了一种混合多策略改进的蜣螂优化算法(IDBO)。该算法采用混沌映射结合随机反向学习策略初始......
  • 改进的蜣螂算法(IDBO)优化BP神经网络原理及MATLAB代码复现
    目录0引言1数学模型2模型性能可视化3MATLAB代码3.1伪代码程序图3.2IDBO-BP0引言针对DBO全局探索能力不足、易陷入局部最优以及收敛精度不理想等问题,有学者提出了一种混合多策略改进的蜣螂优化算法(IDBO)。该算法采用混沌映射结合随机反向学习策略初始化种群提高......
  • 【老生谈算法】matlab实现可变指数遗忘的扩展递归最小二乘法(VEX-RLS)——递归最小二乘
    MATLAB实现可变指数遗忘的扩展递归最小二乘法(VEX-RLS)1、文档下载:本算法完整讲解和全套实现源码见下资源,有需要的朋友可以点击进行下载说明文档(点击下载)本算法文档【老生谈算法】Matlab实现可变指数遗忘的扩展递归最小二乘法(VEX-RLS)及其应用更多matlab算法原理及源码详......
  • Matlab矩阵运算的硬件资源分析
    在用Matlab创建矩阵并计算矩阵乘法运算时,要注意计算机的可用内存大小(空间资源)和CPU性能(影响所用计算时间)。例如我们做以下测试:n为qubit的数目,那么一个矩阵Matrix_A=rand(2^n,2^n)可以表示一个n-qubit的密度矩阵(全实数量子态)或者一个幺正操作(实数矩阵例子)。注意:这样的矩阵Matrix_......
  • 中文汉化 数学计算软件:MATLAB R2023a 商业数学软件下载
    MATLABR2023a是由MathWorks公司推出的一款强大的数值计算和科学编程软件,广泛应用于工程、科学和数学领域。它提供了丰富的数值计算功能,包括线性代数、数值积分、微分方程等,并支持数据可视化、算法开发、深度学习和云服务集成等功能。用户可以使用MATLAB进行高效的矩阵运算、信号......
  • 移动Web前端高效开发实战:HTML 5 + CSS 3 + JavaScript + Webpack + React Native + Vu
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqsoHTML5新特性与应用:介绍HTML5的新特性,包括语义化标签、本地存储、设备兼容、连接特性等,并讲解如何在移动Web前端开发中充分利用这些特性提升用户体验。CSS3样式与动画设计:详细讲解CSS3的样式设计和动画效果,包括选择器、盒......
  • 基于遗传优化的SVD水印嵌入提取算法matlab仿真
    1.程序功能描述基于遗传优化的的SVD水印嵌入提取算法。对比遗传优化前后SVD水印提取性能,并分析不同干扰情况下水印提取效果。2.测试软件版本以及运行结果展示MATLAB2022a版本运行SVD GA优化SVD 性能对比: 3.核心程序%遍历遗传算法返回的各代最优个体(从......
  • 图像去雾+图像去雨(matlab+python)
    看到许多小伙伴想进行图像去雨,图像去雾的任务,由于以前进行了此类项目,所以在此书写博客进行交流。#去雨前言从静止图像中去除雨水是一项复杂且具有挑战性的任务。雨滴仅影响图像的很小区域,因此导致确定应考虑哪个区域和不应考虑哪个区域的混乱。在本文中,已经实现了一种新......