有人說如果能夠正確的預(yù)測股票的價格,就相當(dāng)于發(fā)明了經(jīng)濟的永動機锰什。在這個全民炒股的時代迈螟,誰不想擁有一個水晶球? 機器學(xué)習(xí)和深度學(xué)習(xí)在金融機構(gòu)中的應(yīng)用已經(jīng)足夠長久弄息。LSTM作為在時間序列預(yù)測比較成功的算法海渊,能夠很好的預(yù)測股票數(shù)據(jù)嗎? 下面以阿里巴巴美股數(shù)據(jù)為例绵疲,通過移動平均值預(yù)測MA)和LSTM, 搭建模型預(yù)測股票價格臣疑。用到的除了常用的machine learning libs盔憨, 用Keras 來搭建LSTM模型。
第一步當(dāng)然是import libs
數(shù)據(jù)的來源是Alphavantage讯沈, 從14年9月19日上市以來到今天5月4日的數(shù)據(jù)郁岩。
幾年內(nèi)股票的大致走勢如下圖
如果大家看過一些關(guān)于股票的視頻的話肯定對移動平均線不會陌生。下面的圖里展示了30天和十天的移動平均線缺狠, 可以看到雖然能夠擬合大致的趨勢驯用,但是還是有很多地方出現(xiàn)了相反的趨勢∪謇希基于此,下面是用LSTM來搭建模型记餐。
A data scientist is as good as the data he has驮樊。 所以第一步就是做一些數(shù)據(jù)的預(yù)處理, 特征縮放片酝,分訓(xùn)練集和測試集囚衔, 生成矩陣。
有了數(shù)據(jù)之后雕沿, 第二步就是訓(xùn)練LSTM 模型练湿,用到了keras 的以下模塊,Sequential?用于初始化神經(jīng)網(wǎng)絡(luò)审轮,Dense?用于添加密集連接的神經(jīng)網(wǎng)絡(luò)層肥哎,LSTM?用于添加長短期內(nèi)存層Dropout?用于添加防止過擬合的dropout層辽俗。
模型fit 好之后用測試集數(shù)據(jù)來產(chǎn)生預(yù)測。
最后的LSTM預(yù)測結(jié)果如下崖飘,可以看出LSTM模型要明顯優(yōu)于MA預(yù)測。
總結(jié)
LSTM 真的很善于預(yù)測時間序列數(shù)據(jù)杈女,相信如果和情感數(shù)據(jù)相結(jié)合能夠產(chǎn)生可以實際應(yīng)用的模型朱浴。股市有風(fēng)險,希望每位會理性投資达椰, 精致分析翰蠢, 收益長虹。