當前位置:首頁 » 股市行情 » 股票價格短期預測的lm遺傳神經網路演算法
擴展閱讀
股市開盤才能買股票嗎 2025-08-06 18:02:38
華商主題精選630011 2025-08-06 17:38:00
股票主動買套是什麼意思 2025-08-06 17:13:54

股票價格短期預測的lm遺傳神經網路演算法

發布時間: 2021-09-15 06:20:47

Ⅰ 誰有用於數據預測的用遺傳演算法改進的BP神經網路程序

給你來一段
%主程序
%數據歸一化預處理
nntwarn off
[pn,minp,maxp]=premnmx(p);
pp=(pn+1)/2;
[tn,mint,maxt]=premnmx(t);
%建立BP網路
net=newff(minmax(pp),[15,1],{'logsig','purelin'},'trainlm');
%應用遺傳演算法對優化網路初始值
in=size(pn,1);
out=size(tn,1);
hi=15;%隱含層節點數
L=in*hi+hi*out+hi+out;%遺傳演算法編碼長度
aa=ones(L,1)*[-1,1];
popu=50;%種群規模
initPpp=initializega(popu,aa,'ISeval');%初始化種群
gen=100;%遺傳世代
%調用GAOT工具箱,其中目標函數定義為ISeval
[x,endPop,bPop,trace]=ga(aa,'ISeval',[],initPpp,[1e-6 1 1],'maxGenTerm',…
,gen,'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutation',[2 gen 3]);
%繪收斂曲線圖
figure(1)
plot(trace(:,1),1./trace(:,3),'r-');
hold on
plot(trace(:,1),1./trace(:,2),'b-');
xlabel('Generation');
ylabel('Sum-Squared Error');
figure(2)
plot(trace(:,1),trace(:,3),'r-');
hold on
plot(trace(:,1),trace(:,2),'b-');
xlabel('Generation');
ylabel('Fittness');
%將得到的權值矩陣賦給尚未開始訓練的BP網路
[w1,b1,w2,b2,a1,a2,se,eval]=IScode(x); %調用自定義編解碼函數
%創建網路
net.iW{1,1}=w1;
net.LW{2,1}=w2;
net.b{1,1}=b1;
net.b{2,1}=b2;
%設置訓練參數
net.trainParam.show=10;
net.trainParam.epochs=5000;
net.trainParam.goal=0.05;
%訓練網路
net=train(net,pp,t);

%自定義目標函數
function [sol, eval] = ISeval(sol,options)
% eval - the fittness of this indivial
% sol - the indivial, returned to allow for Lamarckian evolution
% options - [current_generation]
p=[];%原始輸入數據
t=[];%原始輸出數據
in=size(p,1);
out=size(t,1);
hi=15;%隱含層節點數
L=in*hi+hi*out+hi+out;%遺傳演算法編碼長度
for i=1:L,
x(i)=sol(i);
end;
[w1, b1, w2, b2, a1, a2, se, eval]=IScode(x);

%自定義編解碼函數
function [w1, b1, w2, b2, a1, a2, se, eval]=IScode(x)
[pn,minp,maxp]=premnmx(p);
pp=(pn+1)/2;
[tn,mint,maxt]=premnmx(t);
in=size(pn,1);%輸入層結點數
out=size(tn,1);%隱含層結點數
hi=15;%隱含層結點數
L=in*hi+hi*out+hi+out;%遺傳演算法編碼長度
% 前in*hi個編碼為w1
for i=1:hi,
for j=1:in,
w1(i,j)=x(in*(i-1)+j);
end
end
% 接著的hi*out個編碼為w2
for i=1:out,
for j=1:hi,
w2(i,j)=x(hi*(i-1)+j+in*hi);
end
end
% 接著的hi個編碼為b1
for i=1:hi,
b1(i,1)=x((in*hi+hi*out)+i);
end
% 最後的out個編碼b2
for i=1:out,
b2(i,1)=x((in*hi+hi*out+hi)+i);
end
% 計算hi層與out層的輸出
a1=tansig(w1*pp,b1);
a2=purelin(w2*a1,b2);
% 計算誤差平方和
se=sumsqr(t-a2);eval=1/se; % 遺傳演算法的適應值

Ⅱ 你好看你發帖問過用BP神經網路預測股票價格的提問

首先你要搞清bp的基本原理,基於梯度法的原則,因為這種演算法按梯度走,極易進入局部最小點二出不來,所以對於比較簡單的模型如高斯曲面有一定的逼近能力,但是現實如你所說的股票,相關因素特別多,也就是說神經網路輸入通道會很多,而且通道和通道直接喲相關性,模型在超曲面上就像是大海海面一樣跌宕起伏,使用bp明顯太過於困難,而且實際中樣本有限的很,bp理論基於樣本無限的學習規則(21實際70年代),你要證明的話,可以例舉一個簡單的單極二次型函數,用來試試看bp能否完全逼近這個函數

Ⅲ 大家用遺傳演算法優化BP神經網路做預測效果好嗎

不好 可以選擇其他方式

Ⅳ 遺傳神經網路演算法和神經網路演算法的區別

最本質的區別可以說是學習方法不同,或者說模型的優化方法不同。
前者應該是基於遺傳演算法進行網路權值的學習,而後者大都是採用反向傳播(BP)演算法進行權值學習,而這兩種演算法差異很大。建議你分別了解:
1)遺傳演算法
2)反向傳播演算法

Ⅳ 遺傳演算法優化bp神經網路,訓練好後,做預測會更加准確求大神告知!

1、遺傳演算法優化BP神經網路是指優化神經網路的參數; 2、因此,對訓練時間沒有影響。

Ⅵ bp神經網路股票價格預測的MATLAB編程

P=[];『輸入,開盤價,最高價,最低價,收盤價成交量依次5天的數據』
T=[];』輸出,即第二日的收盤』
net=newff(minmax(P),[7,1],{'tansig','logsig'},'traingdx');
net.trainParam.epochs=1000; 『最大訓練次數,根據需要可自行調節』
net.trainParam.goal=0.01; 『誤差』
net.trainParam.lr=0.01; 『學習率』
net=train(net,P,T); 『訓練網路』
test=[];『待預測數據輸入』
out=sim(net,test); 『模擬預測』
我的這個程序沒有進行初始化,你還需要先將數據進行初始化後才能算。

Ⅶ matlab優化神經網路預測股票程序,求大神幫忙,有重謝。

我這里有遺傳演算法優化的神經網路,但是粒子群的沒有啊!

Ⅷ 你好,你能幫我解釋一下怎麼用神經網路做預測以及用遺傳演算法做優化嗎具體點謝謝了

我當時數學建模比賽時用到過
有兩種方法

第一種:自己編代碼
當然這種比較麻煩,但是比較靈活,你可以按照自己的要求在代碼中修改。具體代碼我這已經沒了,因為過了好久了,你可以網路一下 MATLAB 神經網路演算法代碼。

第二種:直接使用MATLAB
MATLAB帶有神經網路工具箱,在控制台輸入命令即可打開。這個工具箱是MATLAB集成的,功能強大而且簡單易用,不知道符合你的要求不。
給你個使用說明網址鏈接: