Выход из обработки GridSearchCV связан со значением выигрыша - PullRequest
0 голосов
/ 26 октября 2018

Я использую GridSearchCV, чтобы найти лучшую степень PolynomialFeature на основе MSE , возвращенного из LinearRegression().

До GridSearchCV я впервые использовал цикл, который был остановлен, когда MSE > 10K. Как я могу реализовать такой же «цикл выхода» с GridSearchCV() для оптимизации времени?

skf2 = StratifiedShuffleSplit(n_splits=4, train_size = 0.8,random_state =63)
start = time.time()

poly_linear = Pipeline([('poly', PolynomialFeatures()),
                      ('Linear', LinearRegression(fit_intercept =False))])

parameters = {'poly__degree': [1,2,3,4,5]}

grid_search_lin = GridSearchCV(poly_linear, parameters, cv=skf2, n_jobs=-1, scoring='mean_squared_error').fit(X_l, Y_l)
print('timer',time.time() - start,'s')

1 Ответ

0 голосов
/ 27 октября 2018

GridSearchCV - это исчерпывающий поиск, т.е. он учитывает все заданные параметры ([1,2,3,4,5]).Я не знаю о возможности цикла выхода с GridSearchCV.Если время является проблемой, вы можете либо (1) уменьшить пространство вашей сетки параметров, (2) уменьшить количество итераций cv (управляется n_splits в skf2), (3) использовать RandomizedSearchCV для случайного выборавыбрать параметры из вашей сетки.Ни один из них не является хорошим вариантом с точки зрения качества выбора модели, но в любом случае это займет меньше времени.

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

Надеюсь, это поможет

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