付世鳳 趙莉 蔡文君
摘要:文章以證券行業(yè)的歷史數(shù)據(jù)作為原始數(shù)據(jù)集,采用BP神經網絡算法找出股票運行規(guī)律和走勢情況,并對預測結果進行分析,結果表明該預測結果正確率比較高。
關鍵詞:BP神經網絡;股票行情
中圖分類號:TP393? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)18-0201-02
開放科學(資源服務)標識碼(OSID):
證券業(yè)是信息化比較早的行業(yè),其行業(yè)數(shù)據(jù)實時更新,積累了大量的歷史數(shù)據(jù),如果證券從業(yè)人員能針對這些歷史數(shù)據(jù)進行分析,發(fā)現(xiàn)股票的運行規(guī)律和走勢情況,這會在證券從業(yè)人員作未來市場決策時起非常重要的作用。
1業(yè)務分析
證券行業(yè)的業(yè)務數(shù)據(jù)主要由證券交易過程中產生的數(shù)據(jù)組成,其中與本文預測目的有關的就是行情數(shù)據(jù),某支股票的歷史收盤價是預測的重要依據(jù):其中的以gi表示股票在i日的股價,股票價格的變化應該是存在某些規(guī)則,如果某天的股價為gn,那么g1,g2....gn-1表示它前面n-1天的股價,gn與g1,g2....gn-1之間應該存在某種關系,而找出這種關系是解決問題的關鍵,本文擬采用BP神經網絡算法來實現(xiàn)。
2 BP神經網絡算法原理
1)BP神經網絡算法模型[1]
BP神經網絡算法是模擬人神經網絡工作原理具自學習、自適應性的一種高效算法。
神經網絡結構是由很多節(jié)點構成,這些節(jié)點分成三類,一部分屬于輸出層記為I1 I2 I3 I4,一部分屬于隱藏層記為 Y5 Y6? Y7 Y8 ,一部分屬于輸出層記為O9,每個節(jié)點在接收到輸入信號后會處理成輸出信號,且在此結構中節(jié)點并不孤立存在,它們相互之間存在關聯(lián),形成一個網絡,具體如下:
a)I1 I2 I3 I4是輸入節(jié)點,其輸入不做處理即輸出:
Out_I1=Input_I1 ;Out_I2=Input_I2;
Out_I3=Input_I3 ;Out_I4=Input_I4;
b)Y5 Y6? Y7 Y8是隱藏層節(jié)點其輸入需做處理后輸出:
Input_Y5=Out_I1*W15+Out_I2*W25+Out_I3*W35+Out_I4*W45 +θ5;
Input_Y6=Out_I1*W16+Out_I2*W26+Out_I3*W36+Out_I4*W46 +θ6;
Input_Y7=Out_I1*W17+ Out_I2 *W27+ Out_I3 *W37+ Out_I4 *W47+θ7;
Input_ Y6=Out_I1*W18+ Out_I2 *W28+ Out_I3*W38+ Out_I4 *W48+θ8;
Out_Y5=f(input_Y5);
Out_Y6=f(input_Y6);
Out_Y7=f(input_Y7);
Out_Y8=f(input_Y8);
其中f是處理函數(shù);Wij是指第i個節(jié)點到第j個節(jié)點的權值,以Y5節(jié)點為例,它的前續(xù)節(jié)點有I1 I2 I3 I4,這些節(jié)點的輸出信息都可以作為 Y5節(jié)點的輸入,但是所占權重不同,而權重分別就是W15 W25 W35 W45。
c)O9是輸出層節(jié)點,其輸入需做處理后輸出:
Input_O9=Out_Y5 *W59+ Out_Y6 *W69+ Out_Y7 *W35+ Out_Y8 *W89+θ9;
Out _O9=f(input_O9);
Out _O9是該節(jié)點計算出的實際輸出,該節(jié)點的理論輸出可由訓練集得到,記為Out_O9,這兩者之間值并不相等,也就是經由實際神經網絡結構計算出的值存在誤差,決定這個誤差的就是Wij即節(jié)點之間的權值,所以需要對神經網絡結構中的權值不斷修正,以使誤差縮小到一個可以允許的范圍,這個過程就是神經網絡訓練過程。
2)BP神經網絡算法的流程[2]
神經網絡訓練是一個重復的過程,需要不斷從訓練集中取出記錄向量進行訓練,將取出每一個記錄向量分成輸入向量和輸出向量兩部分,輸入向量作為輸入層節(jié)點的值,輸出向量作為輸出層節(jié)點的理論值,通過運轉網絡來獲得輸出層節(jié)點的實際值,所以首先可求出輸出層節(jié)點的誤差,然后根據(jù)誤差以及特定參數(shù)調整權值,新的權值不斷迭代舊的權值,直到迭代后某次誤差足夠小或者迭代次數(shù)達到最大即停止,權值修正過程與計算節(jié)點輸出的過程正好相反[3],是一個反向的過程。Errj是第j個節(jié)點的誤差,誤差計算和權值修正的順序應該符合剛才的反向過程,最先計算的應該是第9個節(jié)點,即Err9,能更新的權值有W59 W69 W79W79;其次計算Err5、Err6、Err7、Err8能更新的權值有W15 W25W35 W45W16 W26 W36W46 W17 W27 W37 W47 W18 W28 W38 W48具體公式如下:
Errj= Out _Oj- Out _Oj”
Wij(k+1)= Wij(k)+ △Wij = Wij +(1-α)*L* D(k)+α* D(k-1)
D(k)= Wij(k)-Wij(k-1)
其中參數(shù)α為彈性因子,L為學習率,k為迭代次數(shù)。
3 BP神經網絡在股票行情預測的過程
本文主要研究對股票變化趨勢作出預測,預測是數(shù)據(jù)挖掘研究的分支之一,在數(shù)據(jù)挖掘中要發(fā)現(xiàn)預測型知識可以簡單遵循三個步驟[4]:
(1)從歷史數(shù)據(jù)中提取出與數(shù)據(jù)挖掘有關的數(shù)據(jù),再分割成兩部分,一部分作為訓練集,一部分作為測試集。
(2)選擇合適的算法對訓練集進行訓練,訓練的過程也就是找出股票運行規(guī)律的過程,本文擬采用BP神經網絡算法來完成。
(3)對發(fā)現(xiàn)的規(guī)律進行評估,即用測試集的數(shù)據(jù)來驗證找出規(guī)律的正確性。
(4)根據(jù)歷史數(shù)據(jù)找出的規(guī)律對未來的走勢進行預測。
3.1數(shù)據(jù)處理[5]
(1)數(shù)據(jù)準備
本文得到的數(shù)據(jù)來從證券交易所的數(shù)據(jù)倉庫中直接導出,且已經刪除某些無效記錄,該數(shù)據(jù)集中包括200個交易日的數(shù)據(jù)信息,包括證券代碼、證券名稱、昨日收盤價、今日開盤價以及k指標、最近成交價、成交數(shù)量、成交金額、成交數(shù)量等內容。
(2)數(shù)據(jù)清理
在數(shù)據(jù)準備階段準備的數(shù)據(jù)集中涉及的數(shù)據(jù)項不是都可以直接進行訓練,其中的某些錯誤數(shù)據(jù)以及與數(shù)據(jù)挖掘無關的數(shù)據(jù)應該清理掉,得到干凈的數(shù)據(jù)進行訓練才行,因為某些錯誤的數(shù)據(jù)混入其中,可能會對整個過程產生“干擾”,對結果產生干擾,例如:因股價每日變動劇烈,往往前一日跌了數(shù)百點,隔日馬上漲回數(shù)百點,這種變動極端的經常出現(xiàn),對分析是相當不利的。為了消除此種股價震動的噪聲,本研究以中位數(shù)的方式,來取得當日股價的平均價格,其公式如下: 假設i日股價形態(tài)為Xi=(Oi,Hi,Li,Ci), 其中Oi為開盤價,Hi為最高價,Li為最低價,Ci為收盤價,則i日的股價平均水準為[6]: Pi=MEDIAN(Oj, Hj,Lj,Cj)
(3)數(shù)據(jù)分割
實施數(shù)據(jù)挖掘后所得的結果,需要評估分析,因為某些得到的初始的結果可能是無效的或者只是滿足某個特定的數(shù)據(jù)集,所以需要把數(shù)據(jù)準備階段處理好的數(shù)據(jù)集分割成兩部分:一個訓練集和一個測試集,如果用訓練集訓練出的規(guī)律,利用測試集進行測試,也能得到正確結果,可以認為訓練階段得到的規(guī)律是合理的。
3.2 BP神經網絡算法對訓練集進行訓練
(1)實驗設計
設神經網絡的輸入層節(jié)點有10個,輸出層節(jié)點3個,隱藏層并不固定,可以調整(個數(shù)陸續(xù)選取2,4,6個),并設置學習率為0.05,動量因子0.9,選取100個交易日的行情數(shù)據(jù)進行訓練。
(2)實驗結果
評估結果也證實選擇隱藏節(jié)點為4得到的預測效果也最好。
4結果分析
神經網絡訓練是一個復雜的過程,參數(shù)學習率,動量因子的選取會直接影響訓練效果,如何取定參數(shù)需要經過大量實驗驗證,在實驗階段,動量因子及學習率取值相同的情況下,隱藏節(jié)點的個數(shù)分別選取2個、4個和6個,隱藏節(jié)點選取較小的2,得到6次實驗的訓練誤差比較大,所以將隱藏層個數(shù)增至4個,誤差相對變小,繼續(xù)將隱藏層節(jié)點數(shù)增至6個,但誤差并未繼續(xù)變小,證明隱藏個數(shù)并非越大越好,也并非越小越好,應根據(jù)大量實驗結果選取一個合適的數(shù),原因是:隱藏層節(jié)點太少,神經網絡結構過于簡單,那么它的學習能力和分類能力就會降低,但是隱藏層節(jié)點太多,有會讓神經網絡結構過于復雜,網絡負荷過重,效率也會降低,推廣能力變差。據(jù)此得出結論:訓練一方面要保證神經網絡的分類能力,一方面也要保證神經網絡的推廣能力。
參考文獻:
[1] 沈世鎰.神經網絡系統(tǒng)理論及其應用[M].北京:科學出版社,2000.
[2] 趙燕.基于神經網絡的股票預測分析和研究[D].西安:長安大學,2006.
[3] 袁曉東.神經網絡在股票價格預測中的應用[J].北京機械工業(yè)學院學報,2002,17(3):70-74.
[4] 周曉宇,李慎之,戚曉芳,等.數(shù)據(jù)挖掘技術初探[J].小型微型計算機系統(tǒng),2002,23(3):342-346.
[5] Han J W,Kamber M.數(shù)據(jù)挖掘:概念與技術[M].2版.范明, 孟小峰, 譯.北京:機械工業(yè)出版社, 2007.
[6] 殷洪才,趙春燕.基于神經網絡股票預測的研究[J].哈爾濱師范大學自然科學學報,2007,23(3):47-49,55.
【通聯(lián)編輯:代影】