iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
0
AI & Data

Tensorflow2.0系列 第 26

LSTM-預測股票( 二)

  • 分享至 

  • xImage
  •  

LSTM需要的keras模型

1、順序初始化神經網絡
2、添加一個緊密連接的神經網絡層
3、添加長短時記憶層(LSTM)
4、添加dropout層防止過擬合

import keras
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
from keras.layers import Dropout,BatchNormalization
keras.backend.clear_session()
regressor = Sequential()
regressor.add(LSTM(units = 100, input_shape = (X_train.shape[1], 1)))
regressor.add(Dense(units = 1))
regressor.compile(optimizer = 'adam', loss = 'mean_squared_error')
history = regressor.fit(X_train, y_train, epochs = 100, batch_size = 16)

我們只使用一層LSTM層,訓練100個epoch,batch_size設為16,並劃出train loss

plt.title('train_loss')
plt.ylabel('loss')
plt.xlabel('Epoch')
plt.plot( history.history["loss"])

https://ithelp.ithome.com.tw/upload/images/20201006/201302465Czk8azcQa.png
這裡我們需要稍微處理一下輸入的資料,一樣的邏輯,要預測第i天,就需要第i天前的資料。

dataset_total = pd.concat((train['open'], test['open']), axis = 0)
inputs = dataset_total[len(dataset_total) - len(test) - 10:].values
inputs = inputs.reshape(-1,1)
inputs = sc.transform(inputs)
X_test = []
for i in range(10, len(inputs)):
    X_test.append(inputs[i-10:i-1, 0])
X_test = np.array(X_test)
X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1))
predicted_stock_price = regressor.predict(X_test)
predicted_stock_price = sc.inverse_transform(predicted_stock_price)

劃出預測結果

plt.plot(test['open'].values, color = 'black', label = 'Real TSMC Stock Price')
plt.plot(predicted_stock_price, color = 'green', label = 'Predicted TSMC Stock Price')
plt.title('TATA Stock Price Prediction')
plt.xlabel('Time')
plt.ylabel('Stock Price')
plt.legend()
plt.show()

https://ithelp.ithome.com.tw/upload/images/20201006/20130246QSGFeezYAG.png
這個股票預測我是參考https://wenwender.wordpress.com/2019/10/18/%E5%AF%A6%E4%BD%9C%E9%80%8F%E9%81%8Elstm%E9%A0%90%E6%B8%AC%E8%82%A1%E7%A5%A8/ 終於在快壓線的時候跑出來了,但有很多步驟還是沒辦法一一的debug找出自己的錯誤,看來我離股票預測師還有一大段的距離。


上一篇
LSTM-預測股票(一)
下一篇
Auto Encoder
系列文
Tensorflow2.030
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言