目錄
1.程序功能描述
2.測試軟件版本以及運行結果展示
3.核心程序
4.本算法原理
4.1 反向傳播網絡(BP,多層感知器MLP)
4.2 徑向基函數網絡(RBF)
4.3 卷積神經網絡(CNN)
4.4 長短期記憶網絡(LSTM)
5.完整程序
1.程序功能描述
? ? ? ?基于CNN卷積神經網絡的金融數據預測matlab仿真,對比BP神經網絡,RBF神經網絡,LSTM網絡.對比預測結果和預測誤差。
2.測試軟件版本以及運行結果展示
MATLAB2022A版本運行
3.核心程序
..................................................................
for i = 1:floor(length(data1)/5);p1w(5*i-4:5*i,1) = [p1(i,1);p1(i,1);p1(i,1);p1(i,1);p1(i,1)];p2w(5*i-4:5*i,1) = [p2(i,1);p2(i,1);p2(i,1);p2(i,1);p2(i,1)];p3w(5*i-4:5*i,1) = [p3(i,1);p3(i,1);p3(i,1);p3(i,1);p3(i,1)];p4w(5*i-4:5*i,1) = [p4(i,1);p4(i,1);p4(i,1);p4(i,1);p4(i,1)];
end
Pweek = [p1w,p2w,p3w,p4w];
data1 = [data1,Pweek];%前收盤價格
Price_old = data1(:,1);
%收盤價格
Price_now = data1(:,5);Len = 500;P = [data1(:,1:4),data1(:,6:end)];
P = P/max(max(abs(P)));
T = Price_now/max(Price_now);%歸一化indx= 1:length(P);
ind1= indx(1:Len);
ind2= indx(Len+1:end);Ptrain = P(ind1,:);
Ttrain = T(ind1);Ptest = P(ind2,:);
Ttest = T(ind2);%BP神經網絡
%創建網絡
net = newff(Ptrain',Ttrain',100);
%設置訓練次數
net.trainParam.epochs = 5000;
%設置收斂誤差
net.trainParam.goal = 1e-7;
net.trainParam.showWindow = false;
%訓練網絡
[net,tr] = train(net,Ptrain',Ttrain');Tpre= sim(net,P') figure;
plot(max(Price_now)*T,'r');
hold on
plot(max(Price_now)*Tpre,'b');%誤差
error = 100*(abs((Tpre(1:Len)-T(1:Len)')./Tpre(1:Len)));
max(error)
%準確率
100-max(error)%誤差
error = 100*(abs((Tpre(1+Len:end)-T(1+Len:end)')./Tpre(1+Len:end)));
max(error)
%準確率
100-max(error)save model_BP.mat net error Price_now T Tpre
04_009m
4.本算法原理
? ? ? ? 在金融數據預測領域,深度學習技術,特別是卷積神經網絡(CNN)、循環神經網絡(RNN)的長短期記憶(LSTM)變體、以及傳統的機器學習模型如反向傳播網絡(BP,通常指多層感知器MLP)和徑向基函數網絡(RBF),都展現出了強大的預測能力。這些模型各有特色,適用于不同類型的數據特征和預測任務。
4.1 反向傳播網絡(BP,多層感知器MLP)
? ? ? ?BP網絡是一種典型的前饋神經網絡,通過多層非線性變換學習復雜的輸入輸出映射關系。對于金融數據預測,它能夠捕捉到輸入特征之間的非線性關系。
4.2 徑向基函數網絡(RBF)
? ? ? ?RBF網絡是一種局部逼近模型,常用于函數擬合和分類。在金融預測中,它通過一系列的徑向基函數來逼近非線性關系。
4.3 卷積神經網絡(CNN)
? ? ? CNN最初設計用于圖像處理,但在序列數據和時間序列預測(如金融數據)中也展現出強大能力。它通過卷積層捕捉局部特征,池化層降低維度,全連接層進行分類或回歸。
4.4 長短期記憶網絡(LSTM)
? ? ? ?LSTM是一種特殊的RNN,專為長序列數據設計,解決了傳統RNN梯度消失/爆炸問題,非常適合時間序列預測,如股票價格預測。
5.完整程序
VVV