2015-04-08 5 views
0

Я хотел бы запустить регулярный «gridsearch без CV», то есть я не хочу перекрестно проверять, но установка cv=1 не допускается.Как запустить GridSearchCV без перекрестной проверки?

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

EDIT: Я думаю, я действительно задаю два вопроса

  1. Как взломать cv=1 в GridSearchCV? Ответил ogrisel ниже
  2. Имеет ли смысл делать gridsearch, чтобы свести к минимуму ошибку обучения вместо ошибки обобщения, и если да, то как мне это сделать? Я подозреваю, что это связано с введением моей собственной функции подсчета для параметра scoring в GridSearchCV?
+0

Для чего вам нужно «GridSearchCV»? Если вам не нужны загруженные образцы, вы можете просто сделать что-то вроде '[score (y_test, Classifier (** args) .fit (X_train, y_train) .predict (X_test)) для аргументов в параметрах]' –

+0

Ну ладно , вам нужно будет «развернуть» свой список «параметров» из формата «GridSearchCV» scikit-learn в список всех возможных комбинаций (например, декартова произведение всех списков). –

+0

ПараметрGrid является общедоступным: http://scikit-learn.org/dev/modules/generated/sklearn.grid_search.ParameterGrid.html#sklearn.grid_search.ParameterGrid не то, что он делает какую-либо магию. –

ответ

2

Вы можете передать экземпляр ShuffleSplit(test_size=0.20, n_iter=1, random_state=0) в качестве параметра cv. Это будет делать одно разделение CV на комбинацию параметров.

+1

Это (после запоминания добавления 'n = len (X)'). Является ли это «1-кратным CV», где мы в 2 раза, но строго тренируем по 0,8 раскола и теста только на раскол 0,2 вместо традиционных в 2 раза, где обе складки играют роль поезда и теста? Это, похоже, решает вопрос моего приложения о том, как установить 'cv = 1', а не теоретический вопрос о минимизации ошибки обучения вместо ошибки обобщения. Однако я начинаю находить последнее не стоящим. – selwyth

+0

Невозможно использовать 'GridSearchCV' для минимизации ошибки обучения. Вам нужно будет написать свой собственный класс, чтобы сделать это. – ogrisel

+0

Где можно добавить 'n'? – curio1729

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