【问题标题】:Define log uniform learning_rate parameter in RandomizedSearchCV在 RandomizedSearchCV 中定义 log uniform learning_rate 参数
【发布时间】:2018-10-04 11:46:51
【问题描述】:

我正在进行超参数调整,我使用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) 进行优化,以便使用相同的值“列表”进行优化?

params_randomSearch = {
              "learning_rate" : TODO,
              "min_samples_leaf": np.arange(1,30,1),
              ..
              }

【问题讨论】:

    标签: python machine-learning scikit-learn hyperparameters


    【解决方案1】:

    根据documentation in RandomizedSearchCV()

    param_distributions : 字典

    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),
                  ..
                  }
    

    【讨论】:

    • 非常感谢!一个与位相关的小问题:您知道是否可以限制小数位数?
    猜你喜欢
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 2021-11-23
    • 2019-09-04
    • 2020-06-21
    • 2021-08-04
    • 2021-10-22
    相关资源
    最近更新 更多