2015-08-11 3 views
14

В sklearn GridSearchCV может взять конвейер в качестве параметра, чтобы найти наилучшую оценку путем перекрестной проверки. Тем не менее, обычный крест проверки, как это: enter image description hereКак реализовать тестирование ходьбы в sklearn?

пересечь проверки массива данных временных рядов, данные обучения и тестирования часто расщепленные, как это: enter image description here

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

Моя мысль:

  1. Написать свой собственные версии класса к-складку и передавая ее GridSearchCV, так что я могу наслаждаться удобством трубопровода. Проблема состоит в том, что представляется сложно позволить GridSearchCV использовать определенные показатели обучения и тестирования данных.

  2. Напишите новый класс GridSearchWalkForwardTest, который похож на GridSearchCV, я изучаю исходный код grid_search.py ​​и считаю, что это немного сложно.

Любые предложения приветствуются.

+0

См. Https://github.com/scikit-learn/scikit-learn/issues/3202 – yangjie

ответ

1

Мое мнение, что вы должны попытаться реализовать свой собственный GridSearchWalkForwardTest. Однажды я использовал GridSearch для обучения и реализовал один и тот же GridSearch, и я не получил таких же результатов, хотя я должен.

То, что я делал в конце, использует мою собственную функцию. У вас больше контроля над учебным и тестовым набором, и у вас больше контроля над параметрами, которые вы тренируете.

2

Я думаю, вы могли бы использовать Time Series Split либо вместо своей собственной реализации, либо в качестве основы для реализации метода CV, который точно так же, как вы его описываете.

После того, как вы немного поработали, кажется, что кто-то добавил max_train_size в TimeSeriesSplit в this PR, который, похоже, делает то, что вы хотите.

Смежные вопросы