• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

    2020-04-24 14:50:40馬元昊
    電腦知識與技術(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ù)狀況,國家政策導向,社交輿論影響等,因此可以將股票市場看作是一個錯綜復(fù)雜的非線性動態(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。以同樣的方式處理測試集,只是在返回值中需要包括平均值矩陣和方差值矩陣,因為在最后計算誤差時需要恢復(fù)原數(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ù)測值和實際值的偏差。通過反復(fù)的參數(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模型,通過反復(fù)調(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)編輯:唐一東】

    贵南县| 兴安县| 巴林右旗| 灯塔市| 海宁市| 万荣县| 蚌埠市| 高州市| 聂拉木县| 江川县| 图片| 伊通| 张掖市| 洛浦县| 襄垣县| 巴林右旗| 榆中县| 盐池县| 叶城县| 南投县| 南木林县| 琼结县| 布尔津县| 乐东| 通渭县| 大方县| 太康县| 桐庐县| 卢龙县| 丹凤县| 汝阳县| 文水县| 康马县| 永安市| 岗巴县| 大田县| 定西市| 尤溪县| 西平县| 临高县| 门源|