1
こんにちは、私は、LSTMを扱うときに、X、YとKerasのバッチ入力シェイプとの関係を把握していないようです。Keras LSTMバッチ入力形状
現在のデータベースは84119,190パンダのデータフレームです。私はここから取り込んでいます.XとYに分かれていますので、機能は189です。あなたが私が間違っている場所を指摘できれば、 、寸法)それは評価されるだろう。
import numpy as np
import pandas as pd
from keras.models import Sequential
from keras.layers import LSTM
# load dataset
training_data_df = pd.read_csv("C:/Users/####/python_folders/stock_folder/XYstore/Big_data22.csv")
X = training_data_df.drop('Change Month End Stock Price', axis=1).values
Y = training_data_df[['Change Month End Stock Price']].values
data_dim = 189
timesteps = 4
numberofSequence = 1
X=X.reshape(numberofSequence,timesteps,data_dim)
Y=Y.reshape(numberofSequence,timesteps, 1)
model = Sequential()
model.add(LSTM(200, return_sequences=True,batch_input_shape=(timesteps,data_dim)))
model.add(LSTM(200, return_sequences=True))
model.add(LSTM(100,return_sequences=True))
model.add(LSTM(1,return_sequences=False, activation='linear'))
model.compile(loss='mse',
optimizer='rmsprop',
metrics=['accuracy'])
model.fit(X,Y,epochs=100)
編集発行し、以下のヘルプに
感謝を修正します。どちらも問題を考えるのに役立ちました。それを本当に理解するためにやるべきことがまだあります。
import numpy as np
import pandas as pd
from keras.models import Sequential
from keras.layers import LSTM
training_data_df = pd.read_csv("C:/Users/TurnerJ/python_folders/stock_folder/XYstore/Big_data22.csv")
training_data_df.replace(np.nan,value=0,inplace=True)
training_data_df.replace(np.inf,value=0,inplace=True)
training_data_df = training_data_df.loc[279:,:]
X = training_data_df.drop('Change Month End Stock Price', axis=1).values
Y = training_data_df[['Change Month End Stock Price']].values
data_dim = 189
timesteps = 1
numberofSequence = 83840
X=X.reshape(numberofSequence,timesteps,data_dim)
Y=Y.reshape(numberofSequence,timesteps, 1)
model = Sequential()
model.add(LSTM(200, return_sequences=True,batch_input_shape=(32,timesteps,data_dim)))
model.add(LSTM(200, return_sequences=True))
model.add(LSTM(100,return_sequences=True))
model.add(LSTM(1,return_sequences=True, activation='linear'))
model.compile(loss='mse',
optimizer='rmsprop',
metrics=['accuracy'])
model.fit(X,Y,epochs=100)
データの性質は?あなたのデータは長さ189の84419個の配列から成っていますか?それとも、189個の特徴と85Kの長さを持つ単一の配列ですか?あなたのモデルの主な目的は何ですか? –
私は間違っていると教えてくださいが、私はそれが84119の長さの189シーケンスだと思います。したがって、列見出しは、純利益、1株当たりのキャッシュフロー、1株当たりの簿価... 189の機能のようなものです。行はfeb 2010などの日付です。これは84119値に戻ります。 – Atropos
そして、それらを長さ4の部分列に分割したいと思いますか? –