我正在进行超参数调整,我使用scikit-optimize
进行贝叶斯优化,RandomizedSearchCV
进行随机搜索。
在sci-kit优化中,我可以轻松地定义learning_rate
:
space= [Real(10**-5, 10**0, "log-uniform", name='learning_rate'),
Integer(1, 20, name='max_depth'),
...
]
我如何使用RandomizedSearchCV
(sklearn)进行相同的#34;列表"值是用于优化吗?
params_randomSearch = {
"learning_rate" : TODO,
"min_samples_leaf": np.arange(1,30,1),
..
}
答案 0 :(得分:2)
根据documentation in RandomizedSearchCV():
param_distributions:dict
Dictionary with parameters names (string) as keys and distributions or lists of parameters to try. Distributions must provide a rvs method for sampling (such as those from scipy.stats.distributions). If a list is given, it is sampled uniformly.
现在,scikit-optimize中的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),
..
}