GridSearch 中的 sklearn 逻辑回归参数
sklearn logistic regression parameter in GridSearch
只是想知道如何将参数分成一组并将其传递给 gridsearch?
因为我想将惩罚 l1 和 l2 传递给网格搜索,并将相应的求解器 newton-cg 传递给 L2。
但是,当我 运行 下面的代码时,gridsearch 将首先 运行 l1 with newton-cg 并导致错误消息
ValueError:解算器 newton-cg 仅支持 l2 惩罚,得到 l1 惩罚。
谢谢
param_grid = [
{'penalty':['l1','l2'] ,
'solver' : ['newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga']
}
]
官方文档说:
... or a list of such dictionaries, in which case the grids spanned by each dictionary in the list are explored. This enables searching over any sequence of parameter settings.
So just supply a list of dictionaries each dictionary with consistent set of arguments that work together
GridSearchCV
User Guide中也有一个明确的例子,作为一个很好的例子。
试试这个例子:
param_grid = [
{'penalty': ['l1'], 'solver': [ 'lbfgs', 'liblinear', 'sag', 'saga']},
{'penalty': ['l2'], 'solver': ['newton-cg']},
]
此处 l1 将尝试使用 'lbfgs'、'liblinear'、'sag'、'saga' 和 l2 将只用 'newton-cg'
来尝试
只是想知道如何将参数分成一组并将其传递给 gridsearch? 因为我想将惩罚 l1 和 l2 传递给网格搜索,并将相应的求解器 newton-cg 传递给 L2。
但是,当我 运行 下面的代码时,gridsearch 将首先 运行 l1 with newton-cg 并导致错误消息 ValueError:解算器 newton-cg 仅支持 l2 惩罚,得到 l1 惩罚。
谢谢
param_grid = [
{'penalty':['l1','l2'] ,
'solver' : ['newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga']
}
]
官方文档说:
... or a list of such dictionaries, in which case the grids spanned by each dictionary in the list are explored. This enables searching over any sequence of parameter settings. So just supply a list of dictionaries each dictionary with consistent set of arguments that work together
GridSearchCV
User Guide中也有一个明确的例子,作为一个很好的例子。
试试这个例子:
param_grid = [
{'penalty': ['l1'], 'solver': [ 'lbfgs', 'liblinear', 'sag', 'saga']},
{'penalty': ['l2'], 'solver': ['newton-cg']},
]
此处 l1 将尝试使用 'lbfgs'、'liblinear'、'sag'、'saga' 和 l2 将只用 'newton-cg'
来尝试