Python Time SeriesSplit - PullRequest
       19

Python Time SeriesSplit

0 голосов
/ 29 января 2020

У меня следующий вопрос:

У меня есть серия таймеров. Я сделал свою предварительную обработку, и теперь у меня есть x, который содержит множество функций и y, который содержит мой вывод. Я разделил его на train, test, x_train, x_test, y_train, y_test

Теперь я хочу регрессию и поиск по сетке.

Поскольку у меня есть временной ряд, я не могу сделать k кратная перекрестная проверка. Поэтому я хотел использовать TimeSeriesSplit.

Но что именно я делю? Я думал, что разделю тренировочный набор на поезд и проверим / проверим, чтобы обучить мою модель, проверим / выберу мой гиперараметр и затем сделаем прогноз, используя тест. Это правильно? И как мне выбрать n_split?

Теперь у меня есть следующий код:

pipe=Pipeline....
pipe.fit(x_train, y_train)

tss=TimeSeriesSplit(n_splits=5)
for train_index, test_index in tss(train):
print('train:', train_index, 'test:', test_index

clf=GridSearchCV(pipe, param_grid, cv=tss)
clf.fit(x_train, y_train)

1 Ответ

0 голосов
/ 29 января 2020

в соответствии с документацией sklearn:

https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.TimeSeriesSplit.html

"Предоставляет индексы поездов / испытаний для разделения выборок данных временных рядов, которые наблюдаются через фиксированные интервалы времени, в обучающие / тестовые наборы. В каждом разделении индексы тестирования должны быть выше, чем раньше, и, следовательно, перестановка в перекрестном валидаторе неуместна. " вложенная перекрестная проверка некоторая информация о ней находится по ссылке ниже:

https://mlfromscratch.com/nested-cross-validation-python-code/

...