python - 在RandomizedSearchCV中定义loguniformlearning_rate参数

标签 python machine-learning scikit-learn hyperparameters

我正在进行超参数调整,并使用 scikit-optimize 进行贝叶斯优化,使用 RandomizedSearchCV 进行随机搜索。

在 sci-kit optimization 中,我可以轻松地定义 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),
              ..
              }

最佳答案

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

关于python - 在RandomizedSearchCV中定义loguniformlearning_rate参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49997883/

相关文章:

python - 使用 matplotlib 绘制直方图或散点图

python - 当在editingFinished事件中执行对话框时,QlineEdit的editingFinished被第二次发出

tensorflow - 过度拟合的指示

scikit-learn - 如何使用 GridSearchCV 预测每次迭代的 X_test?

python - 如何将元音的大写保持在同一位置?

python - 如何根据行值将 pandas 列除以整数列表

machine-learning - 如何使用SGD进行时间序列分析

python - 在朴素贝叶斯中获取特征重要性

python - 如何在 Scikit-Learn (sklearn) 中将 `log_loss` 中的 `GridSearchCV` 与多类标签一起使用?

python - 列表的 Pandas 列分隔列