Регрессия: тренировочный тестовый сплит - выдержанный тест?

Я разделил свои данные на обучающую и тестовую выборки (70/30) для задачи, основанной на прогнозировании регрессии (MLP, LSTM и т. д.).

В коде:

history = model.fit(X_train, y_train, epochs=100, batch_size=32, 
                    validation_data=(X_test, y_test), verbose=0, shuffle=False)

Я использовал свои тестовые данные в качестве набора для проверки и сделал прогнозы на пару недель. Так что я не стал сдерживать тестовые данные ...

Но теперь, когда я думаю об этом, я полагаю, что было неправильно помещать тестовые данные в функцию соответствия, или это было нормально?


person A M    schedule 05.11.2019    source источник
comment
Теоретически вам следует снова разделить обучающие данные на обучающие и проверочные наборы. Затем набор тестов следует использовать только один раз.   -  person Nicolas Gervais    schedule 05.11.2019
comment
В моих данных 539 строк. Я сдержу 10% для тестовых данных (последние 53 строки). Затем я разделю оставшиеся данные в соотношении 70/30 на тест и набор данных поезда.   -  person A M    schedule 05.11.2019


Ответы (1)


НИКОГДА! используйте это тестирование как часть обучения или проверки. Набор тестов следует использовать только для вывода после обучения. Так что да, неправильно использовать ваши тестовые данные в функции соответствия, они должны быть только в model.predict(y_test)

person Kenan    schedule 05.11.2019
comment
да, имеет смысл :( Спасибо, начну сначала! - person A M; 05.11.2019
comment
пожалуйста, проголосуйте, если вы удовлетворены ответом, это очень помогает - person Kenan; 06.11.2019
comment
Я изменил его так, чтобы разделить свои данные на Train (340 образцов), Val (145) и Test (54). Подобранная кривая выглядит хорошо, я получил оценку googd mape 4%, но мой r-squard отрицательный. Это тоже нормально, если я не использую val-data и немедленно тестирую их (для использования в моей диссертации)? - person A M; 09.11.2019