Это одномерная проблема прогнозирования временных рядов. Как показывает следующий код, я делю исходные данные на набор данных поезда (trainX) и набор тестовых данных (testX), а затем создаю сеть LSTM с помощью keras. Затем я тренирую модель по набору данных поезда. Однако, когда я хочу получить прогноз, мне нужно знать значение теста, поэтому моя проблема заключается в следующем: почему я должен прогнозировать, поскольку я знаю истинное значение, которое представляет собой набор тестовых данных в этой задаче. Что я хочу получить - это прогнозируемое значение будущего времени? Если у меня возникнут некоторые недоразумения относительно сети LSTM, пожалуйста, сообщите мне.

Спасибо!

# create and fit the LSTM network
model = Sequential()
model.add(LSTM(4, input_shape=(1, look_back)))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(trainX, trainY, epochs=100, batch_size=1, verbose=2)
# make predictions
trainPredict = model.predict(trainX)
testPredict = model.predict(testX)
2
Strange Xue 24 Окт 2018 в 03:55

2 ответа

Лучший ответ

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

В ML мы даем тестовые данные X, и они возвращают нам Y. В случае временных рядов, это может немного ввести в заблуждение новичка, так как мы используем X и выводим, по-видимому, также X: Разница в том, что мы вводим старые значения временного ряда, такие как X, а выходной Y - это значение того же временного ряда, но мы прогнозируем в будущем (можно применить и к настоящему, или даже к прошлому), если вы правильно его определили.

(П.С .: Я бы порекомендовал вам начать с простой регрессии, а затем перейти к LSTM и т. д., если все, что вам нужно, - это изучить машинное обучение.)

1
Failed Scientist 24 Окт 2018 в 04:12

Поскольку при обучении модели у нас нет будущего, мы просто делим данные на обучающие и тестовые наборы. Тогда мы просто представляем, что тестовые наборы - это будущие значения. Мы обучаем нашу модель, используя набор поездов (а также обычно набор проверки). И после того, как наша модель обучена, мы тестируем ее, используя набор тестов для проверки производительности наших моделей.

4
Pang 24 Окт 2018 в 07:18
52959685