ParameterGrid 拆分字符串而不是组合
ParameterGrid splits the string instead of combination
我正在尝试获取用于模型选择的参数网格。因此,按照 Sklearn documentation about ParameterGrid function 中的示例,我们有:
param_grid = {'a': [1, 2], 'b': [True, False]}
list(ParameterGrid(param_grid)) == (
[{'a': 1, 'b': True}, {'a': 1, 'b': False},
{'a': 2, 'b': True}, {'a': 2, 'b': False}])
但我想要的是只传递一个值,而不使用列表注释([]),就像这样:
param_grid = {'a': [1, 2], 'b': 'True', 'c': 'something'}
但是,list(ParameterGrid(param_grid))
只是拆分所有字符串,而不是创建两个组合。结果:
{'a': 1, 'b': 'T', 'c': 's'}
{'a': 1, 'b': 'T', 'c': 'o'}
{'a': 1, 'b': 'T', 'c': 'm'}
问题是,所有项目都必须以列表格式列出,否则我遗漏了什么?
是的,您需要使用 []
表示法,因为 ParameterGrid
期望值是可迭代的。因此,当您将 b
设置为
'b': 'True'
它将遍历字符串 'True'
,因此您将获得 T、R、U 和 E 的不同组合。
要解决这个问题,请像这样使用它
param_grid = {'a': [1, 2], 'b': [True], 'c': ['something']}
我正在尝试获取用于模型选择的参数网格。因此,按照 Sklearn documentation about ParameterGrid function 中的示例,我们有:
param_grid = {'a': [1, 2], 'b': [True, False]}
list(ParameterGrid(param_grid)) == (
[{'a': 1, 'b': True}, {'a': 1, 'b': False},
{'a': 2, 'b': True}, {'a': 2, 'b': False}])
但我想要的是只传递一个值,而不使用列表注释([]),就像这样:
param_grid = {'a': [1, 2], 'b': 'True', 'c': 'something'}
但是,list(ParameterGrid(param_grid))
只是拆分所有字符串,而不是创建两个组合。结果:
{'a': 1, 'b': 'T', 'c': 's'}
{'a': 1, 'b': 'T', 'c': 'o'}
{'a': 1, 'b': 'T', 'c': 'm'}
问题是,所有项目都必须以列表格式列出,否则我遗漏了什么?
是的,您需要使用 []
表示法,因为 ParameterGrid
期望值是可迭代的。因此,当您将 b
设置为
'b': 'True'
它将遍历字符串 'True'
,因此您将获得 T、R、U 和 E 的不同组合。
要解决这个问题,请像这样使用它
param_grid = {'a': [1, 2], 'b': [True], 'c': ['something']}