當前位置:股票大全官網 - 股票投資 - (急)如何用MATLAB建立ANN(人工神經網絡模型)?

(急)如何用MATLAB建立ANN(人工神經網絡模型)?

問題描述:

有兩個自變量,壹個因變量,10個樣本(這裏就取少壹點好了)。用實際問題來表述,假設壹個股票,開盤價 x1,收盤價 x2,第二天的股價 y。 那用神經網絡來預測的目的是,根據10天的開盤價和收盤價,來預測未來股價。顯然,這裏的y與x1和x2相關,我們要訓練壹個網絡(net)來讓他盡可能的預測壹個y

MATLAB程序

clc

clear

load data input output

%input就是包含了x1和x2 10天數據的矩陣,說白了就是20個數的矩陣。output是y的壹個向量,%10個數

%需要自己找壹些數據賦值給input和ouput

P=input;

T=output;

%這裏P和T必須是 x1 x2和y的行向量組合。對於P,x1是行向量,x2是行向量。P=[x1;x2]; T=y. y是行向量

Epochs=5000;

NodeNum=12; TypeNum=1;

TF1='logsig'; TF2='purelin';

%設置壹些初始參數,Epochs是叠代上限次數,NodeNum是第壹個隱藏層的神經元個數,%TypeNum是幾層。TF1和TF2分別定義了幾個傳遞函數。

net=newff(minmax(P),[NodeNum TypeNum],{TF1 TF2},'trainlm');

%建立壹個神經網絡,訓練輸入和輸出數據都有了,設置隱藏層的個數。

net.trainParam.epochs=Epochs;

net.trainParam.goal=1e-4;

net.trainParam.min_grad=1e-4;

net.trainParam.show=200;

net.trainParam.time=inf;

%設置壹些訓練時的參數,第壹個是每次訓練的最大叠代次數;

net=train(net,P,T);

%開始網絡訓練

P_test=P;

B_test=T;

%就用原始的數據進行測試

X=sim(net,P_test);

%測試

Erro=abs(B_test-X);

sigma=std(Erro);

%計算出預測值和實際值的誤差,求出方差。將來方差可以用來隨機調整