本發(fā)明屬于股票預(yù)測領(lǐng)域,更具體地,涉及一種基于lstm模型的股票預(yù)測方法和系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)行業(yè)的發(fā)展,信息技術(shù)占主導(dǎo)地位,證券市場向著現(xiàn)代化的市場方向發(fā)展。現(xiàn)在滬深上市公司已經(jīng)超過幾千家,然而股票投資的收益與風險往往是成正比的,即投資收益越高,可能冒得風險越大。因此,股市預(yù)測方法的研究具有極其重要的應(yīng)用價值和理論意義。歷來有不少的傳統(tǒng)分析技術(shù),應(yīng)該說這些傳統(tǒng)的技術(shù)分析方法在股票分析上還是取得了較大的成就的,然而,不難發(fā)現(xiàn),這些現(xiàn)有的理論和方法也是存在著很大的缺陷的,它們無不是采用靜態(tài)的方法,定性描述的多,定量描述的少,將影響股市的眾多因素割裂開來單一分析。因此,這些局限性使得這些方法在變幻莫測的股票價格波動中不能有效和準確地把握股票價格的變化。故需要探索股票市場波動的復(fù)雜性以及規(guī)律性,并根據(jù)其規(guī)律性設(shè)計一系列的操作簡便,精度夠高的預(yù)測軟件,為廣大投資者規(guī)避風險。
股票市場是多變量非線性動態(tài)系統(tǒng),目前學(xué)術(shù)上還沒有較好的建模方法,同時,股票市場具有一定程度的不確定性,因此,對那些試圖用建立精確模型的方法來進行股價預(yù)測的方法,其預(yù)測效果必然不會理想;股價自身以及影響股價的各變量之間呈現(xiàn)非線性特性,因此要求有強大的處理非線性問題的能力。
股票市場中各種因素之間的相關(guān)性錯綜復(fù)雜,主次關(guān)系變化不定,數(shù)量關(guān)系難于提取,因此應(yīng)用常規(guī)預(yù)測方法對股市做出定量的分析也非常困難;
股票市場中隨機因素很多,對股指、價格的影響顯著,價格波動劇烈,燥聲高,表現(xiàn)出很強的非線性、不確定性。國內(nèi)外對股票市場預(yù)測提出了許多方法。這些方法在實際工作中有著重要指導(dǎo)作用,但仍存在著某些不盡如人意的地方,如回歸模型外推性差,類比系數(shù)法準確性較差,神經(jīng)網(wǎng)絡(luò)計算量大、易產(chǎn)生過擬合。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)的以上缺陷或改進需求,本發(fā)明提供了一種基于lstm模型的股票預(yù)測方法和系統(tǒng),其目的在于由于股票的數(shù)據(jù)有著相當大的時序性,有一定的周期性,適合通過lstm模型對先前的股票走勢構(gòu)建深度學(xué)習(xí)模型,預(yù)測未來的股票走勢,由此解決現(xiàn)有預(yù)測技術(shù)外推性差,準確性較差,計算量大、易產(chǎn)生過擬合的技術(shù)問題。
為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種基于lstm模型的股票預(yù)測方法,所述方法包括一下步驟:
(1)獲取股票交易的歷史數(shù)據(jù),基于實際需要選擇訓(xùn)練數(shù)據(jù);
(2)輸入訓(xùn)練數(shù)據(jù),基于深度學(xué)習(xí)理論構(gòu)建股票預(yù)測模型,所述股票預(yù)測模型包括一層輸入層、一層隱含層和一層輸出層;
(3)輸出預(yù)測結(jié)果,結(jié)合真實值以誤差百分比作為評測指標進行測評。
進一步地,所述步驟(1)具體包括:
從股票交易歷史數(shù)據(jù)中選取前n天的股票參數(shù)來預(yù)測第n+1天的股票;選取股票的昨日收盤價、開盤價、最高價、最低價、成交量和調(diào)整收盤價作為股票預(yù)測模型的訓(xùn)練數(shù)據(jù)。
進一步地,所述步驟(2)中股票預(yù)測模型包括:
維度為n×1的lstm層作為輸入層,將tanh函數(shù)作為輸入層內(nèi)部激活函數(shù)和輸入層與隱含層之間的激活函數(shù),輸入層網(wǎng)絡(luò)節(jié)點是n個;
tanh函數(shù)作為隱含層內(nèi)部激活函數(shù),其中隱含層是lstm結(jié)構(gòu),隱含層的維度為j×k的,有j個網(wǎng)絡(luò)節(jié)點,j優(yōu)選100,k優(yōu)選50;
linear函數(shù)作為輸出層的激活函數(shù),輸出節(jié)點為1。
進一步地,所述股票預(yù)測模型訓(xùn)練的過程中利用交叉驗證的方法來調(diào)節(jié)參數(shù),劃分出20%的訓(xùn)練數(shù)據(jù)作為驗證集,隨機梯度下降算法訓(xùn)練股票預(yù)測模型。
進一步地,所述股票預(yù)測模型訓(xùn)練的過程中選擇平均平方誤差作為損失函數(shù),選擇rmsprop作為隨機梯度下降算法的優(yōu)化算法。
按照本發(fā)明的另一方面,提供了一種基于lstm模型的股票預(yù)測系統(tǒng),所述系統(tǒng)包括:
數(shù)據(jù)選擇模塊,用于獲取股票交易的歷史數(shù)據(jù),基于實際需要選擇訓(xùn)練數(shù)據(jù);
模型構(gòu)建模塊,用于輸入訓(xùn)練數(shù)據(jù),基于深度學(xué)習(xí)理論構(gòu)建股票預(yù)測模型,所述股票預(yù)測模型包括一層輸入層、一層隱含層和一層輸出層;
預(yù)測及測評模塊,用于輸出預(yù)測結(jié)果,結(jié)合真實值以誤差百分比作為評測指標進行測評。
進一步地,所述步驟數(shù)據(jù)選擇模塊具體用于從股票交易歷史數(shù)據(jù)中選取前n天的股票參數(shù)來預(yù)測第n+1天的股票;選取股票的昨日收盤價、開盤價、最高價、最低價、成交量和調(diào)整收盤價作為股票預(yù)測模型的訓(xùn)練數(shù)據(jù)。
進一步地,所述模型構(gòu)建模塊用于構(gòu)建股票預(yù)測模型,股票預(yù)測模型包括:
維度為n×1的lstm層作為輸入層,將tanh函數(shù)作為輸入層內(nèi)部激活函數(shù)和輸入層與隱含層之間的激活函數(shù),輸入層網(wǎng)絡(luò)節(jié)點是n個;
tanh函數(shù)作為隱含層內(nèi)部激活函數(shù),其中隱含層是lstm結(jié)構(gòu),隱含層的維度為j×k的,有j個網(wǎng)絡(luò)節(jié)點;
linear函數(shù)作為輸出層的激活函數(shù),輸出節(jié)點為1。
進一步地,所述模型構(gòu)建模塊還用于在股票預(yù)測模型訓(xùn)練的過程中利用交叉驗證的方法來調(diào)節(jié)參數(shù),劃分出20%的訓(xùn)練數(shù)據(jù)作為驗證集,隨機梯度下降算法訓(xùn)練股票預(yù)測模型。
進一步地,所述所述模型構(gòu)建模塊還用于在股票預(yù)測模型訓(xùn)練的過程中選擇平均平方誤差作為損失函數(shù),選擇rmsprop作為隨機梯度下降算法的優(yōu)化算法。
總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)特征及有益效果:
(1)采用了lstm模型構(gòu)建股票預(yù)測模型,能更好預(yù)測周期性數(shù)據(jù);
(2)采用了tanh函數(shù)作為lstm層的激活函數(shù),對數(shù)據(jù)變化更敏感;
(3)采用了linear函數(shù)作為輸出層的激活函數(shù),更好地處理模型中的回歸問題;
(4)由于采用誤差百分比作為評測指標進行測評,對預(yù)測結(jié)果的準確性有更直觀的體現(xiàn)。
附圖說明
圖1是本發(fā)明方法流程圖;
圖2是本發(fā)明基于深度學(xué)習(xí)理論構(gòu)建股票預(yù)測模型結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
如圖1所示,本發(fā)明具體實施方法包括以下步驟:
(1)獲取股票交易的歷史數(shù)據(jù),基于實際需要選擇數(shù)據(jù);
從股票交易歷史數(shù)據(jù)中選取前n天的股票參數(shù)來預(yù)測第n+1天的股票;選取股票的昨日收盤價、開盤價、最高價、最低價和成交量作為股票預(yù)測模型的訓(xùn)練數(shù)據(jù)。
選取的初始數(shù)據(jù)不能直接用于模型,需要轉(zhuǎn)換格式,輸入數(shù)據(jù)的格式如下矩陣所示:
每一條訓(xùn)練數(shù)據(jù)有20天的股票數(shù)據(jù),每一天都有6個特征,分別對應(yīng)收盤價、開盤價、最高價、最低價、成交量和調(diào)整收盤價,選擇前20天的股票價格作為一個訓(xùn)練樣本。預(yù)測下一天股票調(diào)整開盤價的值,
(2)基于深度學(xué)習(xí)理論構(gòu)建股票預(yù)測模型,所述股票預(yù)測模型包括一層輸入層、一層隱含層和一層輸出層;如圖2所示:
維度為20×1的lstm層作為輸入層,將tanh函數(shù)作為輸入層內(nèi)部激活函數(shù)和輸入層與隱含層之間的激活函數(shù),輸入層網(wǎng)絡(luò)節(jié)點是20個;
tanh函數(shù)作為隱含層內(nèi)部激活函數(shù),其中隱含層是lstm結(jié)構(gòu),隱含層的維度為100×50的,有100個網(wǎng)絡(luò)節(jié)點;
linear函數(shù)作為輸出層的激活函數(shù),輸出節(jié)點為1。
所述股票預(yù)測模型訓(xùn)練的過程中利用交叉驗證的方法來調(diào)節(jié)參數(shù),劃分出20%的訓(xùn)練數(shù)據(jù)作為驗證集,隨機梯度下降算法訓(xùn)練股票預(yù)測模型。
所述股票預(yù)測模型訓(xùn)練的過程中選擇平均平方誤差作為損失函數(shù),選擇rmsprop作為隨機梯度下降算法的優(yōu)化算法。
(3)輸出預(yù)測結(jié)果,結(jié)合真實值以誤差百分比作為評測指標進行測評。
本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。