在RandomizedSearchCV中定义log uniform learning_rate参数

时间:2018-04-24 09:19:36

标签: python machine-learning scikit-learn hyperparameters

我正在进行超参数调整,我使用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),
              ..
              }

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中的RealInteger已经实现了rvs()方法,因此您可以直接使用它们。只需在字典中分配它们即可在RandomizedSearchCV中使用。

params_randomSearch = {
      "learning_rate" : Real(10**-5, 10**0, "log-uniform", name='learning_rate'),
      "min_samples_leaf": np.arange(1,30,1),
              ..
              }