我有一个二进制分类问题。我也有7个变量/功能可用于预测此二进制响应。这7个变量与时间有关,因此我决定针对此问题使用LSTM层。我的疑问是我如何使用数据集正确使用LSTM层。
我正在使用以下代码:
model = Sequential()
model.add(LSTM(window*n_features, activation='relu', input_shape=(window, n_features)))
model.add(Dense(1))
model.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
epochs_hist = model.fit(X_train, y_train, epochs=1000, validation_data=(X2, y_test))
其中:
window = 10
n_features = 7
X_train is an array of shape (3160, 10, 7)
y_train is an array of shape (3160, )
因此,基本上,X_train具有3160个观测值,其中一个是10行(天)和7列(变量/功能)的窗口。
X_train的结构方式非常重要。数据是顺序的,因此第一次观察的第二个元素将是第二次观察的第一个元素。
示例:
假设我有[1、2、3、4、5]作为第一元素,第二个将是[2、3、4、5、6、7]。但就我而言,这是一个多变量示例。