一、 问题
神经网络药品销售预测:用预测方法采用前三个月的销售量来预测第四个月的销售量.如用1、2、3月的销售量为输入预测第4个月的销售量,用2、3、4月的销售量预测第5个月的销售量等. 网络结构:输入层有3个结点,隐含层有5个结点,输出层有1个结点.隐含层的激活函数为tansig;输出层的激活函数为logsig。 数据: 月份 1 2 3 4 5 6 销量 2056 2395 2600 2298 1634 1600 月份 7 8 9 10 11 12 销量 1873 1478 1900 1500 2046 1556
二、方法
构造BP神经网络,其中输入层有3个结点,隐含层有5个结点,输出层有1个结点.隐含层的激活函数为tansig;输出层的激活函数为logsig。输入一年共9组数据进行有监督的训练。
三、结果
如图所示,多轮训练后。神经网络拟合结果较理想,我们得出了一个多元线性预测函数。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/0e972c1ea6c24d46b34df0deed8c9b2e.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/ffcc1d58daa64608a385ed7e2f822c78.png)
四、 代码
p=[2056 2395 2600 2298 1634 1600 1873 1478 1900 1500 2046 1556];%输入一年的销售量数据
P=[];%训练集
T=[];%期望输出
%构造训练集及期望输出集
for i = 1:9
a=[p(i),p(i+1),p(i+2)];
P=[P;a];
T=[T,p(i+3)];
end
%利用maxmin归一化
pmax=max(P);
pmin=min(P);
[r,c]=size(P);
for i = 1:r
for k = 1:c
P(i,k) = (P(i,k)-pmin)/(pmax-pmin);
end
end
[r,c]=size(T);
pmax=max(pmax,[],2);
pmin=min(pmin,[],2);
for i=1:c
T(1,i)=(T(1,i)-pmin)/(pmax-pmin);
end
%构建并训练神经网络
net=newff([0 1;0 1;0 1],[5,1],{'tansig','logsig'},'traingd');%第一个参数体现范围,输入数
net.trainParam.epochs=15000;
net.trainParam.goal=0.01;
net=train(net,P',T);
Y = sim(net,P)
plot(P,T,P,Y,'o')
|