在 RandomizedSearchCV 中定义 log uniform learning_rate 参数
Define log uniform learning_rate parameter in RandomizedSearchCV
我正在进行超参数调整,我使用 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) 来实现相同的 "list" 值用于优化?
params_randomSearch = {
"learning_rate" : TODO,
"min_samples_leaf": np.arange(1,30,1),
..
}
根据 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),
..
}
我正在进行超参数调整,我使用 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) 来实现相同的 "list" 值用于优化?
params_randomSearch = {
"learning_rate" : TODO,
"min_samples_leaf": np.arange(1,30,1),
..
}
根据 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),
..
}