【发布时间】:2019-06-18 15:36:30
【问题描述】:
我几乎在accepted answer here 中找到了我需要的东西。但是有内存问题,因为提供的测试 df 只有 11 行。
我要预测的是使用 LSTM 在 回归 模型(不是分类器!)。我的 dataframe X 有大约 1500 行和 2000 个特征,属于 shape (1500, 2000) 而 真值 y 只是 1500 行,共 1 个功能(可以range any value between -1 and 1)。
由于 LSTM 需要 3D 向量作为输入,我真的苦苦思索如何重塑数据。
再次,按照第一段的示例,它在填充值时因 MemoryError 而崩溃,更具体地说,在 df.cumulative_input_vectors.tolist()。
我的测试(读取预测)是shape (10, 2000)的数据框。
由于敏感数据,我实际上无法分享值/示例。我该如何帮助您解决这个问题?
所以,为了让 LSTM 能够从 y 的 1500 行中学习,如何我应该重塑我的 x 的 1500 行和 2000 行功能? 另外,如何我应该重塑我的forecast 10 行和 2000 个特征?
他们会经历 - 起初因为我正在学习 LSTM - 一个简单的 LSTM 模型:
model = Sequential()
model.add(LSTM(50, input_shape=(train_X.shape[1], train_X.shape[2])))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(train_X, train_y , epochs=50, batch_size=2, verbose=1)
我试过了,但是当预测出错时:
# A function to make a 3d data of what I understood needed done:
def preprocess_data(stock, seq_len):
amount_of_features = len(stock.columns)
data = stock.values
sequence_length = seq_len #+ 1
result = []
for index in range(len(data) - sequence_length):
result.append(data[index : index + sequence_length])
X_train = np.array(result)
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], amount_of_features))
return X_train
# creating the train as:
# X == the DF of 1500 rows and 2000 features
window = 10
train_X = preprocess_data(X[::-1], window)
【问题讨论】:
-
请重新整理您的问题,并明确您的要求。现在我很困惑,因为您似乎在问一个重塑问题,然后不知何故您设法运行预测但在那里却出现错误?
-
我看不出有什么困惑,问题的句子/名称是什么?提示:我应该如何重塑。正文只是对我在哪里的完整解释,以避免“可能重复......”的无益答案