1
안녕하세요 LSTM을 처리 할 때 Keras의 일괄 입력 모양으로 X, Y를 다시 분배하는 것과 관계가없는 것 같습니다.Keras LSTM 배치 입력 모양
현재 데이터베이스는 84119,190 pandas 데이터 프레임입니다. 거기에서 가져 오는 데이터는 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)
편집 아래의 도움말을 문제를
감사를 해결합니다. 두 가지 모두 제가이 문제를 통해 생각하도록 도왔습니다. 아직도 그것을 이해하기 위해 할 일이 있습니다. 샘플의 (numberofSequence,timesteps,data_dim)
input_shape
요구에만 모양 : (timesteps,data_dim)
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)
데이터의 특성은 무엇입니까? 귀하의 데이터는 길이가 1849 인 84419 개의 시퀀스로 구성되어 있습니까? 아니면 길이가 85k이고 길이가 189 개인 단일 시퀀스입니까? 모델의 주 목적은 무엇입니까? –
제가 틀렸다면 말해주십시오.하지만 84119 길이의 189 시퀀스라고 생각합니다. 따라서 열 머리글은 순소득, 주당 현금 흐름, 주당 장부가 등 189 개 기능에 대한 것입니다. 행은 feb 2010과 같은 날짜입니다. 이것은 84119 값으로 돌아갑니다. – Atropos
그리고 길이 4의 하위 시퀀스로 나누고 싶습니다. 맞습니까? –