只是想知道如何将参数分成一个组并将其传递给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']
}
]
答案 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'