我正在使用神经网络并使用Keras。
只是为了解释我的问题:
predicted and real data
创建模型:
model = Sequential()
model.add(LSTM(
input_shape=(sequence_length, nb_features),
units=100,
return_sequences=True))
model.add(Dropout(0.1))
model.add(LSTM(
units=50,
return_sequences=False))
model.add(Dropout(0.1))
model.add(Dense(units=1))
model.add(Activation("linear"))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['mae', r2_keras])
适合功能:
history = model.fit(seq, label_array, epochs=epochs, batch_size=batch_size, validation_split=0.2, verbose=2,
callbacks = [#keras.callbacks.EarlyStopping(monitor='val_loss', min_delta=0, patience=10, verbose=0, mode='min'),
keras.callbacks.ModelCheckpoint(model_path, monitor='val_loss', save_best_only=True, mode='min', verbose=0)]
)
我知道很难说错误到底在哪里,但也许有一些简单的东西可以解释为什么预测值总是相同的。
P.S输入数据!首先,我在pd.DataFrame(min_max_scaler.fit_transform(array_x))
之后使用generate_sequences(array_x)
,最后使用estimator.predict(np.array(array_x))
。