1. 程式人生 > >人工智慧深度學習-Tensorflow例項:利用LSTM預測股票每日最高價

人工智慧深度學習-Tensorflow例項:利用LSTM預測股票每日最高價

LSTM全稱長短期記憶人工神經網路(Long-Short Term Memory),是對RNN的變種。舉個例子,假設我們試著去預測“I grew up in France… 中間隔了好多好多字……I speak fluent __”下劃線的詞。我們拍腦瓜子想這個詞應該是French。對於迴圈神經網路來說,當前的資訊建議下一個詞可能是一種語言的名字,但是如果需要弄清楚是什麼語言,我們是需要離當前下劃線位置很遠的“France” 這個詞資訊。相關資訊和當前預測位置之間的間隔變得相當的大,在這個間隔不斷增大時,RNN 會喪失學習到連線如此遠的資訊的能力。 
這個時候就需要LSTM登場了。在LSTM中,我們可以控制丟棄什麼資訊,存放什麼資訊。 
具體的理論這裡就不多說了,推薦一篇博文Understanding LSTM Networks,裡面有對LSTM詳細的介紹,有網友作出的翻譯請戳[譯] 理解 LSTM 網路

股票預測
在對理論有理解的基礎上,我們使用LSTM對股票每日最高價進行預測。在本例中,僅使用一維特徵。 
資料格式如下: 

執行效果如下:

 

根據股票歷史資料中的最低價、最高價、開盤價、收盤價、交易量、交易額、跌漲幅等因素,對下一日股票最高價進行預測。

實驗用到的資料長這個樣子:

 

label是標籤y,也就是下一日的最高價。列C——I為輸入特徵。 
本例項用前5800個數據做訓練資料。

執行效果如下:

 

 

本設計例項參考了前輩的程式碼,但是有的程式碼拿到沒法執行成功,經過改進這個版本可以執行,特別感謝  

Scorpio_Lu

lyshello123在他的兩篇伯克基礎上修改了部分程式碼,

Tensorflow例項:利用LSTM預測股票每日最高價(一)

Tensorflow例項:利用LSTM預測股票每日最高價(二)

在以上兩篇博文中,博主介紹了RNN和LSTM,並使用LSTM實現了股票預測的例子,讓人受益匪淺。

但博主提供的程式碼有一些bug,無法直接執行,經過本人的多番除錯,已能完整執行,需要修改的路徑問題也已經在程式碼中給出了註釋,希望能在深度學習的路上給大家帶來一些幫助。

完整可執行的程式碼:本例項在Win10  Python3.6 pycharm2018.1.4 上執行成功 ,測試時間2018-11-09-13.45

完整程式碼下載地址