Глубокое обучение; Прогноз LSTM вне выборки - PullRequest
0 голосов
/ 27 марта 2020

0

Я пытаюсь сделать внеплановое прогнозирование индекса цен на жилье с углубленным изучением LSTM. Я попрактиковался в коде с образцом данных (apt_data_s c), разделив его на 70%, 30% обучения и набор тестов (split_date - точка останова). Приведенный ниже код является частью модели, которая показывает создание данных и модели, а также процесс подгонки.

Затем я изменил данные, включив в них пустые строки для прогнозируемой части вне выборки, и перезапустил модель.

Проблема состоит в том, что данные проверки для модели вне выборки не содержат никакой информации, и прогноз на "x_val_multi" становится "nan".

Будет ли кто-нибудь помочь мне в этом? Большое спасибо за вашу помощь заранее. при необходимости могу выложить полный код с данными.

past_history = 1 
future_target = 1 



x_train_multi, y_train_multi = multivariate_data(apt_data_sc, apt_data_sc[:, 0], 0,
                                                 split_date, past_history,future_target)
x_val_multi, y_val_multi = multivariate_data(apt_data_sc, apt_data_sc[:, 0],
                                             split_date, None, past_history, future_target)

model_multi = Sequential() 
model_multi.add(LSTM(60, return_sequences=True,
                    input_shape=x_train_multi.shape[-2:])) 
model_multi.add(LSTM(30, return_sequences=False,
                    activation='relu')) 
model_multi.add(Dense(y_val_multi.shape[1])) 
model_multi.compile(loss='mean_squared_error', optimizer='adam') 
model_multi.summary()

### model fitting 

TM_RMSE_10 =[]
repeats = 1
for _ in range(repeats):
        model_multi.fit(x_train_multi, y_train_multi, epochs=200,
                batch_size=1, verbose=1, callbacks=callbacks_list, 
                validation_split=0.7, 
                validation_data=(x_val_multi, y_val_multi)) 
        TM_RMSE_10.append(np.sqrt(model_multi.evaluate(x_val_multi, y_val_multi, verbose=True)))
        TM_RMSE_10_Mean = np.mean(TM_RMSE_10, axis = 0)
        MULTI_PREDICT_train.append(model_multi.predict(x_train_multi))
        MULTI_PREDICT_test.append(model_multi.predict(x_val_multi))
...