天天看點

灰色神經網絡的預測算法_MATLAB 基于灰色神經網絡的預測算法研究—訂單需求預測...

點選上方藍字關注“公衆号”

灰色神經網絡的預測算法_MATLAB 基于灰色神經網絡的預測算法研究—訂單需求預測...

MATLAB  神經網絡變量篩選—基于BP的神經網絡變量篩選

灰色系統理論是一種研究少資料、貧資訊、不确定性問題的新方法,它以部分資訊已知,部分資訊未知的“小樣本”,“貧資訊”不确定系統為研究對象,通過對“部分”已知資訊的生成、開發,提取有價值的資訊,實作對系統運作行為、演化規律的正确描述和有效監控。

灰色理論強調通過對無規律的系統已知資訊的研究,提煉和挖掘有價值的資訊,進而用已知資訊取揭示未知資訊,使系統不斷“白化”。

灰色系統中建立的模型稱為灰色模型(Grey Model),簡稱GM模型,該模型是以原始資料序列為基礎建立的微分方程。

灰色模組化中最有代表性的模型是針對時間序列的GM模組化,它直接将時間序列資料轉化為微分方程,利用系統資訊,使抽象的模型量化,進而在缺乏系統特性知識的情況下預測系統輸出。

灰色神經網絡的預測算法_MATLAB 基于灰色神經網絡的預測算法研究—訂單需求預測...

灰色神經網絡預測流程包含灰色神經網絡建構,灰色神經網絡訓練和灰色神經網絡預測三個部分。

其中,灰色神經網絡建構根據輸入輸出資料維數确定灰色神經網絡結構。

由于本案例輸入資料為5維,輸出有1維,是以灰色神經網絡結構為1-1-6-1,即LA層有1個節點,輸入為時間序列t,LB層有1個節點,LC層有6個節點,從第2個到第6個分别輸入市場佔有率、需求趨勢、價格波動、訂單滿足率、分銷商聯合預測等5個因素的歸一化資料,輸出為預測訂單量。

灰色神經網絡訓練用訓練資料訓練灰色神經網絡,使網絡具有訂單預測能力。

灰色神經網絡預測用網絡預測訂單數量,并根據預測誤差判斷網絡性能。

共有過去3年36個月的資料,首先取前30個月的資料作為訓練資料訓練網絡,網絡共學習進化100次,然後用剩餘6組資料評價網絡的預測性能。

灰色神經網絡的預測算法_MATLAB 基于灰色神經網絡的預測算法研究—訂單需求預測...
灰色神經網絡的預測算法_MATLAB 基于灰色神經網絡的預測算法研究—訂單需求預測...
灰色神經網絡的預測算法_MATLAB 基于灰色神經網絡的預測算法研究—訂單需求預測...

01

灰色神經網絡算法程式

%% 清空環境變量

clc

clear

load data

%% 資料累加作為網絡輸入

[n,m]=size(X);

for i=1:n

    y(i,1)=sum(X(1:i,1));

    y(i,2)=sum(X(1:i,2));

    y(i,3)=sum(X(1:i,3));

    y(i,4)=sum(X(1:i,4));

    y(i,5)=sum(X(1:i,5));

    y(i,6)=sum(X(1:i,6));

end

灰色神經網絡的預測算法_MATLAB 基于灰色神經網絡的預測算法研究—訂單需求預測...

01

訓練

%% 網絡參數初始化

a=0.3+rand(1)/4;

b1=0.3+rand(1)/4;

b2=0.3+rand(1)/4;

b3=0.3+rand(1)/4;

b4=0.3+rand(1)/4;

b5=0.3+rand(1)/4;

%% 學習速率初始化

u1=0.0015;

u2=0.0015;

u3=0.0015;

u4=0.0015;

u5=0.0015;

%% 權值閥值初始化

t=1;

w11=a;

w21=-y(1,1);

w22=2*b1/a;

w23=2*b2/a;

w24=2*b3/a;

w25=2*b4/a;

w26=2*b5/a;

w31=1+exp(-a*t);

w32=1+exp(-a*t);

w33=1+exp(-a*t);

w34=1+exp(-a*t);

w35=1+exp(-a*t);

w36=1+exp(-a*t);

theta=(1+exp(-a*t))*(b1*y(1,2)/a+b2*y(1,3)/a+b3*y(1,4)/a+b4*y(1,5)/a+b5*y(1,6)/a-y(1,1));

kk=1;

02

%% 循環疊代

for j=1:10

%循環疊代

E(j)=0;

for i=1:30

%% 網絡輸出計算

t=i;

LB_b=1/(1+exp(-w11*t));   %LB層輸出

LC_c1=LB_b*w21;           %LC層輸出

LC_c2=y(i,2)*LB_b*w22;    %LC層輸出

LC_c3=y(i,3)*LB_b*w23;    %LC層輸出

LC_c4=y(i,4)*LB_b*w24;    %LC層輸出

LC_c5=y(i,5)*LB_b*w25;    %LC層輸出

LC_c6=y(i,6)*LB_b*w26;    %LC層輸出

    LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6;    %LD層輸出

    theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2-y(1,1));   %閥值

    ym=LD_d-theta;   %網絡輸出值

    yc(i)=ym;

    %% 權值修正

    error=ym-y(i,1);      %計算誤差

    E(j)=E(j)+abs(error);    %誤差求和       

    error1=error*(1+exp(-w11*t));     %計算誤差

    error2=error*(1+exp(-w11*t));     %計算誤差

    error3=error*(1+exp(-w11*t));

    error4=error*(1+exp(-w11*t));

    error5=error*(1+exp(-w11*t));

    error6=error*(1+exp(-w11*t));

    error7=(1/(1+exp(-w11*t)))*(1-1/(1+exp(-w11*t)))*(w21*error1+w22*error2+w23*error3+w24*error4+w25*error5+w26*error6);

    %修改權值

    w22=w22-u1*error2*LB_b;

    w23=w23-u2*error3*LB_b;

    w24=w24-u3*error4*LB_b;

    w25=w25-u4*error5*LB_b;

    w26=w26-u5*error6*LB_b;

    w11=w11+a*t*error7;

end

end  

%畫誤差随進化次數變化趨勢

figure(1)

plot(E)

title('訓練誤差','fontsize',12);

xlabel('進化次數','fontsize',12);

ylabel('誤差','fontsize',12);

%print -dtiff -r600 28-3

%根據訓出的灰色神經網絡進行預測

for i=31:36

    t=i;

    LB_b=1/(1+exp(-w11*t));   %LB層輸出

    LC_c1=LB_b*w21;           %LC層輸出

    LC_c2=y(i,2)*LB_b*w22;    %LC層輸出

    LC_c3=y(i,3)*LB_b*w23;    %LC層輸出

    LC_c4=y(i,4)*LB_b*w24;    %LC層輸出

    LC_c5=y(i,5)*LB_b*w25;

    LC_c6=y(i,6)*LB_b*w26;

    LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6;    %LD層輸出

    theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2-y(1,1));   %閥值

    ym=LD_d-theta;   %網絡輸出值

    yc(i)=ym;

end

yc=yc*100000;

y(:,1)=y(:,1)*10000;

03

%計算預測的每月需求量

for j=36:-1:2

    ys(j)=(yc(j)-yc(j-1))/10;

end

figure(2)

plot(ys(31:36),'-*');

hold on

plot(X(31:36,1)*10000,'r:o');

legend('灰色神經網絡','實際訂單數')

title('灰色系統預測','fontsize',12)

xlabel('月份','fontsize',12)

ylabel('銷量','fontsize',12)

04

仿真結果圖

灰色神經網絡的預測算法_MATLAB 基于灰色神經網絡的預測算法研究—訂單需求預測...
灰色神經網絡的預測算法_MATLAB 基于灰色神經網絡的預測算法研究—訂單需求預測...
灰色神經網絡的預測算法_MATLAB 基于灰色神經網絡的預測算法研究—訂單需求預測...

具體仿真程式連結,微信公衆号回複【神經網絡】即可獲得連結。

未完待續

掃碼關注

不迷路

灰色神經網絡的預測算法_MATLAB 基于灰色神經網絡的預測算法研究—訂單需求預測...