Разъяснения по GridSearchCV в склеарне - PullRequest
0 голосов
/ 28 марта 2020

У меня есть следующие вопросы относительно GridSearchCV в sklearn. Я пытался, но не мог найти четких ответов. Ниже приведено исправление кода с использованием -

dep = df2['responder_flag']
indep = df2.drop(df2.columns[[0,85]], axis = 1)

X_train, X_test, y_train, y_test = train_test_split(indep, dep,test_size=0.25, random_state = 23)

train = xgb.XGBClassifier(objective='binary:logistic')
param_grid = {'max_depth': [4,5], 'n_estimators': [500], 'learning_rate': [0.02,0.01]}
grid = GridSearchCV(train, param_grid,cv=5, scoring='roc_auc')
grid.fit(X_train, y_train)
  1. Is cross_validation, т.е. параметр cv в GridSearchCV эквивалентен Kfold или другим методам CV, явно примененным с использованием cross_validation_score и другие подобные функции при обучении данных?

  2. Могу ли я использовать GridsearchCV для перекрестной проверки? скажем, если я не предоставлю список с несколькими параметрами, будет ли он равен технике перекрестной проверки?

  3. После выполнения оператора grid.fit(X_train, y_train) обучает ли модель наилучшим параметрам? определены и могут быть использованы для прогнозирования модели напрямую, или мне нужно будет определить другой оценщик с помощью grid.best_params_, затем обучить и использовать его для прогнозирования?

Извинения, если на них дан ответ раньше.

1 Ответ

1 голос
/ 30 марта 2020

Вот ответы:

  1. cv параметр эквивалентен k-кратному.
    В GridSearchCV мы даем набор значений параметров, которые нам нужны модель взять. Допустим, мы берем learning_rate = 0,0001 из [0,0001, 0,001, 0,01, 0,1, 1, 10]. Когда мы указываем cv = 5 в gridsearch, он будет выполнять 5-fold cv для 000.1. Аналогично, он также выполнит 5-fold cv для оставшихся значений. k в этом случае составляет 5.

  2. В некотором смысле, да. Но не делайте этого, потому что GridSearchCV ожидает список параметров. GridSearchCV - это метод для выполнения гиперпараметрической настройки. Если вы не укажете список с несколькими параметрами, это отрицательно скажется на цели использования GridSearch.

  3. Установка модели с grid.best_params_ на тренировочном наборе вручную после завершения grid.fit(X_train, y_train) не требуется. GridSearchv имеет параметр refit, который автоматически заменит grid.best_esitmator_ на весь тренировочный набор, если мы установим refit = True. По умолчанию установлено значение True. Документация

...