GridSearch中的sklearn逻辑回归参数

时间:2018-05-20 08:30:54

标签: machine-learning scikit-learn pipeline logistic-regression

只是想知道如何将参数分成一个组并将其传递给gridsearch? 因为我想将惩罚l1和l2传递给网格搜索并将相应的求解器newton-cg传递给L2。

但是,当我运行下面的代码时,gridsearch将首先使用newton-cg运行l1并导致错误消息 ValueError:Solver newton-cg仅支持l2惩罚,得到l1惩罚。

由于

 param_grid = [

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

 ]

2 个答案:

答案 0 :(得分:1)

官方文件说:

  

...或此类词典的列表,在这种情况下,探索列表中每个词典所跨越的网格。这样可以搜索任何参数设置序列。   因此,只需提供每个字典的字典列表,其中包含一致的参数集合

GridSearchCV User Guide中还有一个明确的例子,它就是一个很好的例子。

答案 1 :(得分:1)

试试这个例子:

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

这里 l1 将尝试'lbfgs','liblinear','sag','saga' l2 将会尝试只有'newton-cg'