Python TensorFlow循環(huán)神經(jīng)網(wǎng)絡(luò)RNN-LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測股票市場價(jià)格時(shí)間序列和MSE評(píng)估準(zhǔn)
全文下載鏈接:http://tecdat.cn/?p=26562
最近我們被客戶要求撰寫關(guān)于循環(huán)神經(jīng)網(wǎng)絡(luò)的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。
自 2000 年?1 月以來的股票價(jià)格數(shù)據(jù)。我們使用的是 Microsoft 股票。
該項(xiàng)目包括:
將時(shí)間序列數(shù)據(jù)轉(zhuǎn)換為分類問題。
使用 TensorFlow 的 LSTM 模型
由 MSE 衡量的預(yù)測準(zhǔn)確性
GPU 設(shè)置(如果可用)
gpus?=?tf.config.experimental.li
讀取數(shù)據(jù)集
有幾種方法可以獲取股市數(shù)據(jù)。以下數(shù)據(jù)集是使用 R BatchGetSymbols 生成的。
#加載數(shù)據(jù)集#?ref.date是數(shù)組的第一列?datang?=?read_csv('stopriceo.csv',?header=0)

pd.pivot_table(datong)

我們的股票時(shí)間序列
我們?yōu)檫@個(gè)項(xiàng)目選擇了微軟(股票代碼 MSFT)。
plt.rrms['fgre.dpi']?=?300plt.plot(dfte['MSFT'])

時(shí)間序列顯然不是平穩(wěn)的,這是大多數(shù)預(yù)測模型所假設(shè)的屬性。我們可以對(duì)時(shí)間序列應(yīng)用變換,直到它達(dá)到平穩(wěn)狀態(tài)。Dickey-Fuller 檢驗(yàn)使我們能夠確定我們的時(shí)間序列是否具有季節(jié)性。
在這里,我們將應(yīng)用對(duì)數(shù)轉(zhuǎn)換來解決股票市場的指數(shù)行為。
其他有助于預(yù)測模型的轉(zhuǎn)換:
移動(dòng)平均線
差分化
df1?=?datt['MSFT']#?我們對(duì)數(shù)據(jù)集進(jìn)行了對(duì)數(shù)轉(zhuǎn)換df1?=?np.log(df1)

#?替代方案:我們可以對(duì)時(shí)間序列進(jìn)行差分,從而去除季節(jié)性和平均值的變化。#?創(chuàng)建一個(gè)差分序列#dfdiff?=?diffe(df1,1)
預(yù)處理
在這里,我們對(duì)時(shí)間序列數(shù)據(jù)應(yīng)用標(biāo)準(zhǔn)預(yù)處理。
在時(shí)間序列中,我們沒有標(biāo)簽,但我們有時(shí)間序列的未來值,因此輸出可以是 x(t),給定 x(t-1) 作為輸入。這是將數(shù)據(jù)集構(gòu)建為監(jiān)督問題的一種實(shí)用(且直觀)的方法。
scaer?=?ixSer(fatue_ange?=?(0,1))scer.i_rrm(np.array(df1).rehape(-1,1))


LSTM 模型
我們在這里實(shí)現(xiàn)了一個(gè)堆疊的 LSTM 模型。
LSTM 網(wǎng)絡(luò)是一種遞歸神經(jīng)網(wǎng)絡(luò),能夠?qū)W習(xí)序列預(yù)測問題中的序列依賴性。LSTM 模型主要用于語音識(shí)別、自然語言處理的上下文中。最近,它們也被應(yīng)用于時(shí)間序列數(shù)據(jù)的分析。
from?tensorflow.keras.models?import?Sequential?model.add(LSTM(50,?retsueces?=?True#LSTMmodel.add(Dropout(0.1))

history

plt.plot(history.history

點(diǎn)擊標(biāo)題查閱往期內(nèi)容

Python中利用長短期記憶模型LSTM進(jìn)行時(shí)間序列預(yù)測分析 - 預(yù)測電力負(fù)荷數(shù)據(jù)

左右滑動(dòng)查看更多

01

02

03

04

表現(xiàn)
import?math?from?sklearn.metrics?import?mean_squared_error

plt.rcParams['figure.dpi']?=?300plt.rcParams['savefig.dpi']?=?300#移位預(yù)測lokback?=?ie_steptrinPrectPot?=?numpy.empty_like(df1)traireditPlot[:,:]?=?np.nanin_y?=?scaler.nesetsfrm(df1)plt.plot

plt.plot(iv_y)

未來 30 天的預(yù)測
我們現(xiàn)在可以遞歸地應(yīng)用該模型,通過估計(jì)第二天的 (t+1) 價(jià)格,然后再次將其作為輸入來推斷 t+2 天的價(jià)格,依此類推。這個(gè)預(yù)測當(dāng)然會(huì)有更大的誤差,因?yàn)槊總€(gè)預(yù)測的日子都會(huì)帶來很大的不確定性。然而,這個(gè)預(yù)測確實(shí)會(huì)告訴我們模型是否從過去的數(shù)據(jù)中學(xué)到了任何東西。
#?預(yù)測未來30天的情況?len(tesdata)?#?1211#?我認(rèn)為在test_data中,最后一天是5月22日,例如#?對(duì)于5月23日,我需要100個(gè)前一天的數(shù)據(jù)?x_input?=?test_data[(len

while(i<ftue_teps):????if(len(tep_put)>ie_sep):????????x_input?=?np.array(tepinut[1:])????????x_input?=?x_input.reshap
plt.plot(dy_ew,?scaler.inverse_transf
plt.plot(df3[1000:])
點(diǎn)擊文末?“閱讀原文”
獲取全文完整資料。
本文選自《Python TensorFlow循環(huán)神經(jīng)網(wǎng)絡(luò)RNN-LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測股票市場價(jià)格時(shí)間序列和MSE評(píng)估準(zhǔn)確性》。
本文中的股票數(shù)據(jù)****分享到會(huì)員群,掃描下面二維碼即可加群!
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
數(shù)據(jù)分享|PYTHON用KERAS的LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行時(shí)間序列預(yù)測天然氣價(jià)格例子
Python對(duì)商店數(shù)據(jù)進(jìn)行l(wèi)stm和xgboost銷售量時(shí)間序列建模預(yù)測分析
Matlab用深度學(xué)習(xí)長短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)對(duì)文本數(shù)據(jù)進(jìn)行分類
RNN循環(huán)神經(jīng)網(wǎng)絡(luò) 、LSTM長短期記憶網(wǎng)絡(luò)實(shí)現(xiàn)時(shí)間序列長期利率預(yù)測
結(jié)合新冠疫情COVID-19股票價(jià)格預(yù)測:ARIMA,KNN和神經(jīng)網(wǎng)絡(luò)時(shí)間序列分析
深度學(xué)習(xí):Keras使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡單文本分類分析新聞組數(shù)據(jù)
用PyTorch機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)分類預(yù)測銀行客戶流失模型
PYTHON用LSTM長短期記憶神經(jīng)網(wǎng)絡(luò)的參數(shù)優(yōu)化方法預(yù)測時(shí)間序列洗發(fā)水銷售數(shù)據(jù)
Python用Keras神經(jīng)網(wǎng)絡(luò)序列模型回歸擬合預(yù)測、準(zhǔn)確度檢查和結(jié)果可視化
Python用LSTM長短期記憶神經(jīng)網(wǎng)絡(luò)對(duì)不穩(wěn)定降雨量時(shí)間序列進(jìn)行預(yù)測分析
R語言中的神經(jīng)網(wǎng)絡(luò)預(yù)測時(shí)間序列:多層感知器(MLP)和極限學(xué)習(xí)機(jī)(ELM)數(shù)據(jù)分析報(bào)告
R語言深度學(xué)習(xí):用keras神經(jīng)網(wǎng)絡(luò)回歸模型預(yù)測時(shí)間序列數(shù)據(jù)
Matlab用深度學(xué)習(xí)長短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)對(duì)文本數(shù)據(jù)進(jìn)行分類
R語言KERAS深度學(xué)習(xí)CNN卷積神經(jīng)網(wǎng)絡(luò)分類識(shí)別手寫數(shù)字圖像數(shù)據(jù)(MNIST)
MATLAB中用BP神經(jīng)網(wǎng)絡(luò)預(yù)測人體脂肪百分比數(shù)據(jù)
Python中用PyTorch機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)分類預(yù)測銀行客戶流失模型
R語言實(shí)現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡(luò))模型進(jìn)行回歸數(shù)據(jù)分析
SAS使用鳶尾花(iris)數(shù)據(jù)集訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)(ANN)模型
【視頻】R語言實(shí)現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡(luò))模型進(jìn)行回歸數(shù)據(jù)分析
Python使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡單文本分類
R語言用神經(jīng)網(wǎng)絡(luò)改進(jìn)Nelson-Siegel模型擬合收益率曲線分析
R語言基于遞歸神經(jīng)網(wǎng)絡(luò)RNN的溫度時(shí)間序列預(yù)測
R語言神經(jīng)網(wǎng)絡(luò)模型預(yù)測車輛數(shù)量時(shí)間序列
R語言中的BP神經(jīng)網(wǎng)絡(luò)模型分析學(xué)生成績
matlab使用長短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)對(duì)序列數(shù)據(jù)進(jìn)行分類
R語言實(shí)現(xiàn)擬合神經(jīng)網(wǎng)絡(luò)預(yù)測和結(jié)果可視化
用R語言實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測股票實(shí)例
使用PYTHON中KERAS的LSTM遞歸神經(jīng)網(wǎng)絡(luò)進(jìn)行時(shí)間序列預(yù)測
python用于NLP的seq2seq模型實(shí)例:用Keras實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯
用于NLP的Python:使用Keras的多標(biāo)簽文本LSTM神經(jīng)網(wǎng)絡(luò)分類