我正在进行超参数调优,我使用scikit-optimize进行贝叶斯优化,使用RandomizedSearchCV进行随机搜索。
在sci优化中,我可以轻松地定义learning_rate,如下所示:
space= [Real(10**-5, 10**0, "log-uniform", name='learning_rate'),
Integer(1, 20, name='max_depth'),
...
]我如何使用RandomizedSearchCV (sklearn)来进行优化,以便使用相同的“列表”值进行优化?
params_randomSearch = {
"learning_rate" : TODO,
"min_samples_leaf": np.arange(1,30,1),
..
}发布于 2018-04-24 10:12:45
根据RandomizedSearchCV()文档
param_distributions : dict 字典,参数名称(字符串)作为键和分布或参数列表来尝试。发行版必须提供用于抽样的rvs方法(例如来自scipy.stats.distributions的方法)。如果给出一个列表,则对其进行均匀采样。
现在,scikit中的Real和Integer已经实现了rvs()方法,因此可以直接使用它们。只需在要在RandomizedSearchCV中使用的字典中分配它们。
params_randomSearch = {
"learning_rate" : Real(10**-5, 10**0, "log-uniform", name='learning_rate'),
"min_samples_leaf": np.arange(1,30,1),
..
}https://stackoverflow.com/questions/49997883
复制相似问题