Эти вопросы очень специфичны для библиотеки Python scikit-learn. Пожалуйста, дайте мне знать, если лучше разместить его в другом месте. Благодаря!Ранняя остановка при тренировке нейронной сети в scikit-learn
Теперь вопрос ...
У меня есть прямоточный нейронная сеть класс ffnn, основанный на BaseEstimator, который я тренируюсь с СГДОМ. Он работает нормально, и я также могу тренировать его параллельно с помощью GridSearchCV().
Теперь я хочу реализовать раннюю остановку в функции ffnn.fit(), но для этого мне также нужен доступ к данным валидации складки. Один из способов сделать это, чтобы изменить строку в sklearn.grid_search.fit_grid_point(), который говорит
clf.fit(X_train, y_train, **fit_params)
в нечто вроде
clf.fit(X_train, y_train, X_test, y_test, **fit_params)
, а также изменить ffnn.fit(), чтобы принять эти аргументы. Это также повлияет на другие классификаторы в sklearn, что является проблемой. Я могу избежать этого, проверив какой-то флаг в fit_grid_point(), который говорит мне, когда вызывать clf.fit() одним из двух способов.
Может кто-нибудь предложить другой способ сделать это, когда мне не нужно редактировать какой-либо код в библиотеке sklearn?
В качестве альтернативы, было бы целесообразно дополнительно расколоть X_train и y_train в последовательности сборки/валидации в случайном порядке и проверить хорошую точку остановки, а затем повторно подготовить модель на всех X_train?
Спасибо!
Спасибо! @ogrisel: Достаточно ли одного прохода над данными проверки? Как я могу проверить, может ли он быть лучше с несколькими проходами? – user1953384
Вы можете сравнить итоговый результат теста с оценочной оценкой вашего оригинального, но более дорогостоящего подхода. – ogrisel
Спасибо! И жаль насчет тривиального вопроса. Это, конечно, то, что нужно сделать :). – user1953384