BP神经网络预测matlab程序销售量预测

BP神经网络模型
神经网络模型是仿照人类大脑神经系统构建的模型,目前常用的神经网络模型为BP神经网络模型。BP神经网络模型是多层前馈神经网络,该模型算法中主要的部分是信号的前向传播和误差的反向传播。神经网络基本结构如下图所示:
图3.1 神经网络模型基本结构
图3.1中,从左至右分别为输入层i,隐藏层k(隐藏层一般有多层),输出层j。
误差的反向传播是BP神经网络模型算法的核心,随着迭代次数的增加,误差不断减小,当达到人工设定的迭代次数或者最小误差时停止训练,确定神经元之间的最优连接权值和阈值。由于网络本身的缺陷,连接权值是随机给定的,网络经常会陷入局部最优解,通常无法得到网络的最优权值。
BP神经网络预测用来预测各领域数据,例如电力行业负荷预测,风力预测,光伏预测等,本文通过应用BP神经网络,以近几年电动汽车销售量为历史数据,对未来的销售量进行预测,matlab程序如下,进攻参考:
下面展示一些 内联代码片

// BP神经网络预测matlab程序
clc
close all
clear all
%      年月,        销售量/数量
S=[     201901		9.6;
        201902		5.3;
        201903		12.6;
        201904		9.7;
        201905		10.4;
        201906		15.2;
        201907		8;
        201908		8.5;
        201909		8;
        201910		7.5;
        201911		9.5;
        201912		16.3;
        202001		4.4;
        202002		1.29;
        202003		5.3;
        202004		7.2;
        202005		8.2;
        202006		10.4;
        202007		9.8;
        202008		10.9;
        202009		13.8;
        202010		16;
        202011		20;
        202012		24.8];
%% 神经网络模型
Result3=ones(1,12);
E3=ones(1,12);
s=S(:,1);
load=S(:,2);
T=[S(13,2),S(14,2),S(15,2),S(16,2),S(17,2),S(18,2),S(19,2),S(20,2),S(21,2),S(22,2),S(23,2),S(24,2)];
for i=1:12
P_train=S(i:i+12,:)';% 训练数据输入
T_train=load(i:i+12)';% 训练数据输出
P_test=S(i+12,:)';% 测试数据输入
T_test=load(i+12)';% 测试数据输出
[p_train, ps_input] = mapminmax(P_train,0,1);
p_test = mapminmax('apply',P_test,ps_input);
[t_train, ps_output] = mapminmax(T_train,0,1);
net = newff(p_train,t_train,9);
net.trainParam.epochs = 1000;% 设置网络训练参数
net.trainParam.goal = 1e-3;
net.trainParam.lr = 0.01;
net = train(net,p_train,t_train);% Elman网络训练
t_sim = sim(net,p_test);% 预测数据
T_sim = mapminmax('reverse',t_sim,ps_output);
error = (T_sim - T_test)./T_test;
N = size(P_test,2);
R2 = (N * sum(T_sim .* T_test) - sum(T_sim) * sum(T_test))^2 / ((N * sum((T_sim).^2) - (sum(T_sim))^2) * (N * sum((T_test).^2) - (sum(T_test))^2)); 
result=T_sim;
Result3(i)=result;
E3(i)=error;
end
E3=ones(1,12);
for i=1:2
   E3(i)=(Result3(i)-T(i))/T(i); 
end
figure
plot(202001:1:202012,T,'b:*',202001:1:202012,Result3,'r-o')
legend('真实值','预测值')
xlabel('时间:x年x月')
ylabel('销售量/万辆')

运行结果如下图:
运行结果图
从结果中我们可以看出,BP神经网络有很好的预测效果,预测值与实际值比较接近。

  • 7
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

电磁MATLAB

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

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

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

打赏作者

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

抵扣说明:

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

余额充值