MATLAB 神经网络43个案例——BP神经网络数据预测

该文章详细展示了如何使用BP神经网络对随机数据进行训练和预测,涉及数据预处理、模型配置及性能评估。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码分析:

clear all;close;clc
%% 读取数据
%p为输入 t为输出
p=randi(20,[200,2]);%产生大小为1至20之间 维度为200*2的伪随机数矩阵
t=p(:,1)+p(:,2);

%% 训练集和测试集
p_train=p(1:190,:)';
p_test=p(191:end,:)';
t_train=t(1:190,:)';
t_test=t(191:end,:)';

%% 节点个数
inum=2;%输入层
hnum=5;%隐藏层
onum=1;%输出层

%% 训练集输入输出数据归一化
[P_train,PS]=mapminmax(p_train);%首字母大写:归一化后的数据
[T_train,TS]=mapminmax(t_train);

%% 构建BPnet框架 参数配置
net=newff(P_train,T_train,hnum);
view(net)
net.trainParam.epochs=1000;%迭代次数
net.trainParam.lr=0.01;%学习率
net.trainParam.goal=0.00001;%最小目标误差(均方误差)

%% BPnet训练
net=train(net,P_train,T_train);%根据上述参数对net进行训练

%% 测试集输入数据归一化
P_test=mapminmax('apply',p_test,PS);

%% BPnet预测
T_test_predict=sim(net,P_test);

%% 预测值反归一化
t_test_predict=mapminmax('reverse',T_test_predict,TS);

%% 误差:真实值-预测值
error=t_test-t_test_predict;
mse=error*error'/size(error,2);%均方误差

%% 对比图
hold on
plot(t_test,'bo-');
plot(t_test_predict,'r*-');
plot(error,'k');
legend('真实值','预测值','误差');
xlabel('数据组数');
ylabel('样本值');
title('BPnet预测值与真实值的对比图');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值