параметр логистической регрессии sklearn в GridSearch - PullRequest
0 голосов
/ 20 мая 2018

просто интересно, как разделить параметры на группы и передать их в gridsearch?Поскольку я хочу передать штраф l1 и l2 в поиск по сетке и соответствующий решатель newton-cg в L2.

Однако, когда я запускаю приведенный ниже код, gridsearch сначала запустит l1 с newton-cg и приведет к ошибкеmsg ValueError: Solver newton-cg поддерживает только штрафы l2, штраф l1.

Спасибо

 param_grid = [

  {'penalty':['l1','l2'] ,
   'solver' : ['newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga']
  }

 ]

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

Попробуйте этот пример:

param_grid = [
  {'penalty': ['l1'], 'solver': [ 'lbfgs', 'liblinear', 'sag', 'saga']},
  {'penalty': ['l2'], 'solver': ['newton-cg']},
 ]

здесь l1 будет пробоваться с 'lbfgs', 'liblinear', 'sag', 'saga' и l2 будет пробоваться только с 'newton-cg'

0 голосов
/ 20 мая 2018

Официальный документ говорит:

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

Существует также явный пример в GridSearchCV Руководстве пользователя , которое служитхороший пример.

...