国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于LSTM神經(jīng)網(wǎng)絡(luò)的股票大盤短期趨勢預(yù)測

2020-04-24 14:50馬元昊
電腦知識與技術(shù) 2020年5期

馬元昊

摘要:該文針對股票價格預(yù)測課題分析了循環(huán)神經(jīng)網(wǎng)絡(luò)在這一領(lǐng)域的可行性。通過結(jié)合結(jié)合長短期記憶,基于Tensorflow平臺搭建了多層LSTM模型對上證綜指進行了短期預(yù)測,通過不斷優(yōu)化得到了非常好的預(yù)測準確率。

關(guān)鍵詞:股票大盤;LSTM;短期預(yù)測

中圖分類號:TP393 文獻標識碼:A

文章編號:1009-3044(2020)05-0205-02

開放科學(資源服務(wù))標識碼(OSID):

金融市場中股票的預(yù)測一直是一個經(jīng)久不衰的研究課題,引起了著來自各個學術(shù)領(lǐng)域的學者和業(yè)界人士的關(guān)注[1-2]。股票市場因為其蘊含巨大的商業(yè)價值而提供了巨大的吸引力,對于股票市場的預(yù)測由于股票數(shù)據(jù)的非線性、時間序列、價值導向、強波動性等特性而產(chǎn)生了而產(chǎn)生了很大的困難。同時由于股票市場受到眾多外界因素和干擾項的影響,其中包括公司財務(wù)狀況,國家政策導向,社交輿論影響等,因此可以將股票市場看作是一個錯綜復雜的非線性動態(tài)系統(tǒng),很難用常規(guī)的方法預(yù)測其趨勢變化。近年來由于機器學習的興起,多種機器學習算法,如神經(jīng)網(wǎng)絡(luò),遺傳算法,支持向量機,KNN等,都被用于預(yù)測股票價格[3-5]。LSTM作為最成功的RNN架構(gòu)之一,對于股票趨勢這種有著一定周期規(guī)律的預(yù)測有著很好的效果。LSTM型循環(huán)神經(jīng)網(wǎng)絡(luò)解決了神經(jīng)網(wǎng)絡(luò)存在的梯度消亡現(xiàn)象[6]。LSTM引入了存儲器單元,這是一種計算單元,可替代網(wǎng)絡(luò)隱藏層中的傳統(tǒng)人工神經(jīng)元。利用這些存儲器單元,網(wǎng)絡(luò)能夠及時有效地關(guān)聯(lián)存儲器和遠程輸入,因此適合于隨著時間的推移以高預(yù)測能力動態(tài)地掌握數(shù)據(jù)結(jié)構(gòu)。本文使用LSTM基于TensorFlow平臺對中國股票上證指數(shù)進行了建模和預(yù)測。本文選取了上證綜指的交易數(shù)據(jù)(日數(shù)據(jù)):開盤價、最高價、最低價、收盤價、交易量、交易額、漲跌幅七個維度的特征數(shù)據(jù)作為輸入因子,同時為了判斷模型的預(yù)測準確率,加入了股票代碼、時間和后一個交易日該股票的收盤價,通過計算(預(yù)測收盤價一實際收盤價)/實際收盤價來得到準確率。通過對58000個序列的訓練擬合該模型,并使用其他9900個序列進行測試。預(yù)測準確率達到了97.80087040351719%,說明應(yīng)用LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測上證大盤指數(shù)有著相當不錯的效果。

1 方法

在我們用于股票預(yù)測的LSTM模型中,一個序列被定義為固定時間段(N天)內(nèi)任上證指數(shù)的每日數(shù)據(jù)集的順序收集。每日數(shù)據(jù)集包含具有序列學習能力的股票的特征,例如收盤價,這些N天中某一天的交易量等。我們的模型由一個輸入層,多個LSTM層,密集層以及單個輸出層組成。其中輸出層存儲單元的數(shù)量與序列可保持的學習特征數(shù)量一樣。上證指數(shù)的58000條數(shù)據(jù)作為訓練集,9900條數(shù)據(jù)作為測試集。獲取和預(yù)處理訓練集,將數(shù)據(jù)標準化,將數(shù)據(jù)處理為20*7*5800的矩陣作為輸入,同時以batch_size=60的大小記錄每一個batch的初始index。以同樣的方式處理測試集,只是在返回值中需要包括平均值矩陣和方差值矩陣,因為在最后計算誤差時需要恢復原數(shù)據(jù)的范圍,從而比對預(yù)測值和真實值的距離。

class LSTMO:

def hidden_layer(self, inputs, feature_num, cell_num, lay-er_num,BATCH_SIZE,TIMESTEP):

def lstm_cell0:

cell=tf.nn.rnn_cell.BasicLSTMCell(cell_num)

return t£nn. rnn_cell. DropoutWrapper(cell, LSTM_ KEEP_PROB)

cell=tf.contrib.rnn.MultiRNNCell([

lstm_cello for一in range(layer_num)

】, state_is_tuple=True)

具體代碼如下:

def

train_model(self, BATCH_SIZE, TIMESTEP, train_begin,train_end Ji,feature_num,cell_num,layer_num,globaLsteps):

with tf.name_scope('inputs 7):

inputs=tf. placeholder(tf. float32, shape= [None, TIMESTEP, fea-ture_num],name=7i

nputs)

labels=tf. placeholder(tf. float32, shape= [None, TIMESTEP,1】,name='Iabels')

data=get_datao

index, train_x, train_y=data. get_train_data(BATCH_SIZE,TIMESTEP,train_begin,tra

in end

with tf.variable_scope( "Istm_layer"):

pred,~=self. hidden_layer(inputs, feature_num, cell_num, lay-er_num,BATCH_S

IZE,TIMESTEP)

在LSTM中,選擇序列的學習特征至關(guān)重要[7]。由于股票數(shù)據(jù)種類較多,包含了日數(shù)據(jù)、周數(shù)據(jù)等不同時間跨度的數(shù)據(jù)以及輔助預(yù)測而產(chǎn)生的數(shù)據(jù)例如日線k線等,這里我們選用以下兩組:

(1)上證綜指的交易數(shù)據(jù)(日數(shù)據(jù)):開盤價、收盤價、日內(nèi)最高價、日內(nèi)最低價、交易量、交易額;

(2)上證綜指的財務(wù)數(shù)據(jù)(日數(shù)據(jù)):歷史PEC、市盈率、市現(xiàn)率PCF、市銷率PSc8]。

我們期望LSTM的序列學習能力將為我們找到最佳參數(shù)。在目前的研究中,一個序列有60天的股價數(shù)據(jù),每個每日數(shù)據(jù)有10個特征。

2 實驗

原始數(shù)據(jù):本實驗中選取的是上證指數(shù)中股票代碼為sh000001的上證綜指股票從1990/12/20到2018/10/17共6790日數(shù)據(jù)??倲?shù)據(jù)大小為10*6790,即一共有67900個交易日該股票的數(shù)據(jù),每一個交易日的數(shù)據(jù)包括10個維度。具體包括:股票代碼,交易時間,開盤價,收盤價,最低價,最高價,交易量,交易額,漲跌幅;處理訓練和測試的輸入集和輸出對比集,對各因子的數(shù)據(jù)進行z-score標準化讓不同因子的數(shù)據(jù)的范圍相近,確保各因子的數(shù)據(jù)不會因為取值范圍之差導致一些因子在模型訓練中不起作用。

訓練細節(jié):本實驗在Windows系統(tǒng)下進行,主要配置參數(shù)為Window 10 x64, 8.00 CB運行內(nèi)存,Intel i5-5200 CPU.并用Python進行程序設(shè)計。我們選擇應(yīng)用TensorFlow作為深度學習平臺。使用pandas和numpy進行數(shù)據(jù)獲取和處理。數(shù)據(jù)來源于tushare。神經(jīng)網(wǎng)絡(luò)層數(shù)為2,批量大小為60,神經(jīng)細胞個數(shù)為15,學習率初始定為0.0006,迭代次數(shù)為1000,時間步長為20,閾值為0.95,優(yōu)化器為自適應(yīng)矩估計。

實驗結(jié)果:本實驗預(yù)測的是后一日的收盤價,為了判斷模型的預(yù)測準確率,通過計算(預(yù)測收盤價一實際收盤價)/實際收盤價來得到準確率,同時以折線圖的形式比對預(yù)測值和實際值的偏差。通過反復的參數(shù)調(diào)整和模型微調(diào),最終對上證綜指數(shù)據(jù)集的最佳預(yù)測正確率為:97.80087040351719%。

圖1展示了實驗結(jié)果。

3 總結(jié)

本文采用了高階的深度學習平臺TensorFlow,實驗數(shù)據(jù)來源于股票代碼為sh000001上證綜指從1990/12/20到2018/10/17的日線數(shù)據(jù),目的是通過歷史數(shù)據(jù)預(yù)測下一日的股票收盤價格。通過將原數(shù)據(jù)預(yù)處理后劃分為訓練集和測試集,避免訓練集和測試集交叉而導致過擬合問題。實驗過程搭建了一個多層LSTM模型,通過反復調(diào)參和局部優(yōu)化得到了一個十分理想的數(shù)據(jù),最終僅通過1000次迭代達到了97.8%的正確率,這個結(jié)果證明可以很好地預(yù)測出上證指數(shù)的后一日收盤價,在選擇股票分析時,這非常有用,對于股票實操有很好的指導意義。本文證明了LSTM在中國股票市場預(yù)測上證指數(shù)上有著強大的功能,相應(yīng)的對于股市中的個股預(yù)測也能起到一定作用。

參考文獻:

[1]王波,程福云.KNN算法在股票預(yù)測中的應(yīng)用[J].科技創(chuàng)業(yè)月刊,2015,28(16):25-26.

[2]傅航聰,張偉,機器學習算法在股票走勢預(yù)測中的應(yīng)用[J].軟件導刊,2017,16(10):31-34,46.

[3] Krollner, Bjoern, Bruce Vanstone, and Gavin Finnie. "Finan-cial time series forecasting with machine learning techniques:A survey,2010.

[4] Agrawal J G V S.Chourasia. and A.K.Mittra. "State-of-the-art in stock prediction techniques.”International Journal ofAdvanced Research in Electrical, Electronics and Instrumenta-tion Engineering 2.4,2013: 1360-1366.

[5] Lipton, Zachary C."A Critical Review of Recurrent NeuralNetworks for Sequence Learning.‘ arXiv preprint arXiv:1506.00019,2015.

[6] Saad, Emad W., Danil V.Prokhorov, and Donald C.Wunsch.”Comparative study of stock trend prediction using time delay, recurrent and probabilistic neural networks." Neural Networks,IEEE Transactions on 9.6 (19981: 145 6-1470.

[7] Christopher Olah, Understanding Long Short Term MemoryNetworks, August 27,2015.

[8]謝家泉,謝偉梁,房地產(chǎn)上市公司財務(wù)綜合評價研究[J].金融經(jīng)濟,2013(2):165-166.

[通聯(lián)編輯:唐一東】

磐安县| 永靖县| 依兰县| 台安县| 清水县| 临颍县| 格尔木市| 灵川县| 准格尔旗| 乐都县| 云梦县| 子长县| 长白| 克什克腾旗| 简阳市| 武威市| 塘沽区| 乌拉特前旗| 六枝特区| 永靖县| 大足县| 利川市| 泰兴市| 阿城市| 离岛区| 绥江县| 进贤县| 元江| 清镇市| 淮阳县| 曲周县| 罗田县| 庄浪县| 青冈县| 绵竹市| 建阳市| 普安县| 江口县| 光山县| 中牟县| 肥西县|