我想使用 Keras LSTM 模型制作预测器。我参观了一系列地方。任务是预测最后的目的地。
我经历了不同的例子,但似乎我无法正确塑造输入。
我被困在如何在我的程序中准备我的数据以将它们提供给 LSTM 模型。这是与我的问题相关的最小代码。
input_csv ='input.csv'
max_features = 6
df = pd.read_csv(input_csv)
df.head()
#Cafe =0.1, Park =0.2, Shop =0.3, Home=0.4, Movie = 0.5, School=0.6
例如,A 访问了 cafe (0.1) -> park(0.2) -> cafe (0.1) -> park(0.2),最后在学校 (0.6) 结束。期望的任务是根据输入 X (place1,place2,place3,place4) 预测 y (end)。
X = df.iloc[:,1:5].to_numpy()
X_train = X.reshape(6, 1, 4) # X.reshape(samples, timesteps, features)
X_train.shape
#(6, 1, 4)
y = df.iloc[:,-1].to_numpy()
y.shape
#(6,)
#Building model
model = Sequential()
model.add(LSTM(6, dropout=0.2, recurrent_dropout=0.2, input_shape=(None, 1)))
model.add(Dense(max_features, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Train
model.fit(X_train,y)
pred = model.predict(X_train)
predict_classes = np.argmax(pred,axis=1)
ValueError:检查输入时出错:预期 lstm_4_input 的形状为 (None, 1) 但得到的数组的形状为 (1, 4)
如果有人可以帮助我消除我的困惑或指出一些解释,我将不胜感激。谢谢你。
