尝试执行 GridSearchCV() 时出错

数据挖掘 scikit-学习
2022-02-18 02:44:28

在以下代码行中,我得到

clf = neural_network.MLPClassifier(hidden_layer_sizes=(5, 12))
parameters =[ {'solver': ['lbfgs'],'max_iter': [500,1000,1500], 'alpha': [1e-1,1e-2,1e-3,1e-4,1e-5,1e-6,1e-7],  'random_state':[0,1,2,3,4,5,6,7,8,9]}]
model = GridSearchCV(clf,param_grid=parameters,n_jobs=-1)

在最后一行我收到以下错误

ValueError: Parameter values for parameter (solver) need to be a sequence(but not a string) or np.ndarray.

现在我从阅读中知道

scikit-learn 中 GridSearchCV 中的参数

这意味着一切都必须在一个数组中,但我所有的参数都在一个数组中,所以我做错了什么。谢谢

2个回答

我没有得到那个(或任何)错误(在更正你之后paramatorsparameters

也就是说,如果您只想使用一个求解器,您不妨将其直接传递给估计器,并将其排除在网格搜索之外。

不,并非所有参数都是数组,正如错误消息中指出的那样,参数“solver”是一个具有单个字符串值的列表。

您已声明 {'solver' : ['lbfgs'] },这是一个包含单个字符串 'lbfgs' 的列表。

参数“solver”应该有一个用逗号分隔的值列表,但您只给出了一个值“lbfgs”。

例如

您可以更改参数,例如 {'solver' : ['l','b','f','g','s'] },这是一个字符串值列表。

或者

您可以更改参数,例如 {'solver' : ['lbf','gs', 'abc'] },这也是一个字符串值列表。