91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡(jiǎn)介

采用BP神經(jīng)網(wǎng)絡(luò)對(duì)150組股票交易數(shù)據(jù)進(jìn)行擬合,擬合精度較好。

資源截圖

代碼片段和文件信息

clear?all
clc
clf

%采用三層BP網(wǎng)絡(luò)結(jié)構(gòu)
%輸入層神經(jīng)元數(shù)為5,隱含層神經(jīng)元數(shù)為3,輸出層神經(jīng)元數(shù)為1

%最大迭代次數(shù)
maxcishu=5000;

%e為計(jì)算輸出和樣本實(shí)際輸出差
%在內(nèi)存中開辟maxcishu個(gè)存儲(chǔ)空間
e=zeros(maxcishu1);

%?輸入數(shù)據(jù)維度5,輸入節(jié)點(diǎn)數(shù)5
%?maxp當(dāng)日最高價(jià)序列
%?minp當(dāng)日最低價(jià)序列
%?sp當(dāng)日開盤價(jià)
%?ep當(dāng)日收盤價(jià)
%?tnum當(dāng)日成交量
%?調(diào)用數(shù)據(jù)
%shuju=xlsread(‘dm.xlsx‘?‘B1:K151‘);
shuju=importdata(‘BP_ZXF.xlsx‘);
sp=shuju.data(:1)‘;
maxp=shuju.data(:2)‘;
minp=shuju.data(:3)‘;
tnum=shuju.data(:10)‘;
ep=shuju.data(:4)‘;

%將數(shù)據(jù)集按照2:1分為訓(xùn)練樣本集,和測(cè)試樣本集
jishu=length(ep);
jishu=ceil(jishu/3*2)?;

%測(cè)試樣本集是2/3處到最后一個(gè)
spt=sp(jishu+1:end);
maxpt=maxp(jishu+1:end);
minpt=minp(jishu+1:end);
tnumt=tnum(jishu+1:end);
ept=ep(jishu+1:end);

%訓(xùn)練樣本集
sp=sp(1:jishu);
maxp=maxp(1:jishu);
minp=minp(1:jishu);
tnum=tnum(1:jishu);
ep=ep(1:jishu);

%記錄下每組的最大值最小值,為訓(xùn)練樣本集的歸一化準(zhǔn)備
maxp_max=max(maxp);
maxp_min=min(maxp);
minp_max=max(minp);
minp_min=min(minp);
ep_max=max(ep);
ep_min=min(ep);
sp_max=max(sp);
sp_min=min(sp);
tnum_max=max(tnum);
tnum_min=min(tnum);

%?目標(biāo)數(shù)據(jù)為次日的收盤價(jià),相當(dāng)于把當(dāng)日收盤價(jià)時(shí)間序列向前挪動(dòng)一個(gè)單位
goalp=ep(2:jishu);

%數(shù)據(jù)歸一化將所有數(shù)據(jù)歸一化到(0?1)
guiyi=@(A)((A-min(A))/(max(A)-min(A)));
maxp=guiyi(maxp);
minp=guiyi(minp);
sp=guiyi(sp);
ep=guiyi(ep);
tnum=guiyi(tnum);

%?后面的目標(biāo)數(shù)據(jù)goalp個(gè)數(shù)是ep向前移動(dòng)一位得到,所以最后一組的目標(biāo)數(shù)據(jù)缺失
%?所以,要把除了目標(biāo)數(shù)據(jù)goalp以外的所有數(shù)據(jù)序列刪除最后一個(gè)
maxp=maxp(1:jishu-1);
minp=minp(1:jishu-1);
sp=sp(1:jishu-1);
ep=ep(1:jishu-1);
tnum=tnum(1:jishu-1);

%需要循環(huán)學(xué)習(xí)次數(shù)loopn,即訓(xùn)練樣本的個(gè)數(shù)
loopn=length(maxp);
%為了方便表示將5個(gè)行向量放到一個(gè)5*loopn的矩陣中simp中每一列是一個(gè)樣本向量
simp=[maxp;minp;sp;ep;tnum];

%隱含層節(jié)點(diǎn)n
%根據(jù)相關(guān)資料,隱含層節(jié)點(diǎn)數(shù)比輸入節(jié)點(diǎn)數(shù)少,一般取1/2輸入節(jié)點(diǎn)數(shù)
bn=3;

%隱含層激活函數(shù)為S型函數(shù)
jihuo=@(x)(1/(1+exp(-x)));

%bx用來存放隱含層每個(gè)節(jié)點(diǎn)的輸出
%bxe用來保存bx經(jīng)過S函數(shù)處理的值,即輸出層的輸入
bx=zeros(bn1);
bxe=zeros(bn1);

%權(quán)值學(xué)習(xí)率u
u=0.02;

%W1(mn)表示隱含層第m個(gè)神經(jīng)元節(jié)點(diǎn)的第n個(gè)輸入數(shù)值的權(quán)重,
%即,每一行對(duì)應(yīng)一個(gè)節(jié)點(diǎn)
%所以輸入層到隱含層的權(quán)值W1構(gòu)成一個(gè)bn*5的矩陣,初值隨機(jī)生成
W1=rand(bn5);

%W2(m)表示輸出節(jié)點(diǎn)第m個(gè)輸入的初始權(quán)值,采用隨機(jī)生成
W2=rand(1bn);

%loopn個(gè)訓(xùn)練樣本,對(duì)應(yīng)loopn個(gè)輸出
out=zeros(loopn1);

for?k=1:1:maxcishu
????
????%訓(xùn)練開始i表示為本次輸入的是第i個(gè)樣本向量
????for?i=1:1:loopn
????????
????????%求中層每個(gè)節(jié)點(diǎn)bx(n)的輸出,系數(shù)對(duì)應(yīng)的是W1的第n行
????????for?j=1:1:bn
????????????bx(j)=W1(j:)*simp(:i);
????????????bxe(j)=jihuo(bx(j));
????????end
????????
????????%求輸出
????????out(i)=W2*bxe;
????????
????????%誤差反向傳播過程
????????%計(jì)算輸出節(jié)點(diǎn)的輸入權(quán)值修正量結(jié)果放在行向量AW2中
????????%輸出神經(jīng)元激活函數(shù)?f(x)=x
????????%為了書寫方便,將deta用A代替
????????AW2=zeros(1bn);
????????AW2=u*(out(i)-goalp(i))*bxe‘;
????????
????????%計(jì)算隱含層節(jié)點(diǎn)的輸入權(quán)值修正量結(jié)果放在行向量AW1中需要對(duì)隱含層節(jié)點(diǎn)逐個(gè)處理
????????AW1=zeros(bn5);
????????for?j=1:1:bn
????????????AW1(j:)=u*?(out(i)-goalp(i))*W2(j)*bxe(j)*(1-bxe(j))*simp(:i)‘;
????????end
????????W1=W1-AW1;
????????W2=W2-AW2;
????end
????
????%計(jì)算樣本偏差
????e(k)=sum((out-goalp‘).^2)/2/loopn;
????%誤差設(shè)定
????if?e(k)<=0.01
????????disp(‘迭代次數(shù)‘)
????????disp(k)
????????disp(‘訓(xùn)練樣本集誤差‘)
????????disp(e(k))
????????break
????end
end

%顯示訓(xùn)練好的權(quán)值
W1
W2
%繪制誤差收斂曲線,直觀展示收斂過程
figure(1)
hold?on
e=e(1:k);
plot(e)
title(‘訓(xùn)練樣本集誤差曲線‘)
%?計(jì)算輸出和實(shí)際輸出對(duì)比圖
figure(2)
plot(out‘rp‘)
hold?on
plot(goalp‘bo‘)

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????4614??2015-11-24?19:19??BP_ZXF.m
?????文件???????24599??2015-11-11?23:24??BP_ZXF.xlsx
?????文件??????260162??2016-01-02?15:44??基于BP網(wǎng)絡(luò)的股票數(shù)據(jù)預(yù)測(cè)模型.docx

評(píng)論

共有 條評(píng)論

相關(guān)資源