Вопрос заключается в неверно выбранной стратегии разделения обучения / тестирования в модели RandomForest. Я знаю, что выбор набора тестов таким образом дает неправильный результат, но я хотел бы знать, почему.
(Модель смотрит на данные за предыдущие дни и пытается предсказать, будут ли данные на следующий день выше или ниже, чем сегодня, т.е. проблема классификации)
Я скопировал код разделения поездов и тестов из другого примера, и он просто устанавливает случайные строки как train_set или test_set. (Пытался проиллюстрировать ниже) Исходные данные представляют собой ежедневные значения закрытия, например, EURUSD.
Затем я создаю функции на основе этого. Каждая функция смотрит на некоторые предыдущие точки данных и предлагает набор функций, который представляет собой строку в X_test. Затем я обучаю случайную модель леса, чтобы попытаться предсказать закрытие следующего дня.
Точность в test_set очень высока, и она увеличивается с увеличением количества исторических предыдущих точек, на которые он смотрит, что, кажется, предполагает переоснащение.
Когда я меняю модель разделения поездов / тестов, чтобы иметь, например, train_set: data в январе-июне и test_set: data в августе, то есть полностью отдельные наборы данных и невозможность смешивания, точность становится более реалистичной 50%.
Опять же, я знаю, что разделение на поезд / тест неверно, но может ли кто-нибудь помочь мне понять, почему ..?
Каждый раз, когда я хочу проверить строку (т. Е. Одно предсказание в test_set), я использую функции, которые просматривают предыдущие данные, пытаясь предсказать завтрашние данные? Почему возникает переоснащение?