Выполнение перекрестной проверки данных на каждой минуте - PullRequest
0 голосов
/ 15 апреля 2019

Я бы хотел провести перекрестную проверку данных на мелочах.

Я пытался использовать метод TimeSeriesSplit в Scikit learn.Но это создает сгибы на основе индекса.

Следовательно, что происходит, так это то, что складка поездов может содержать данные от '2017-01-01 00:00:00' до '2019-01-01 10:00:00', а тестовая складка будет содержать данные от '2019-01-01 10:01:00' до '2019-01-02 23:59:00'.

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

Чего я хотел бы добиться, так это выполнить TimeSeriesSplit с группировкой

Например -

train_fold_1 - '2017-01-01 00:00:00' to '2019-01-01 23:59:00'
test_fold_1 - '2019-01-02 00:00:00' to '2019-01-02 23:59:00'

train_fold_2 - '2017-01-01 00:00:00' to '2019-01-02 23:59:00'
test_fold_2 - '2019-01-03 00:00:00' to '2019-01-03 23:59:00'

У меня есть мелкие данные, и в настоящее время я использую XGBoost для прогнозирования каждогоминута завтрашнего дня.

PFA - снимок экрана с pandas Dataframe

В обоих нижеприведенных случаях для выполнения перекрестной проверки использовались последние 400 дней. Например - Если мы хотимПрогноз от 2019-01-01 00:00:00 до 2019-01-01 23:59:00, мы будем использовать прошедшие 400 дней до 2018-12-31 23:59:00 для выполнения перекрестной проверки.

Первое значение на рисунке ниже - MSE, а второе - стандартное отклонение, рассчитанноес использованием TimeSeriesSplit от Scikit learn.

перекрестная проверка 1 января-2019 с использованием TimeSeriesSplit

перекрестная проверка 1 февраля 2019 использование TimeSeriesSplit

Как вы можете заметить, даже когда использовался тот же объем данных, мы все еще наблюдаем огромное изменение в MSE и стандартное отклонение при изменении диапазона дат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...