调整参数的贝叶斯优化参数是什么?

时间:2019-11-06 14:23:55

标签: r optimization bayesian

我正在使用贝叶斯优化来调整SVM的参数以解决回归问题。在以下代码中,init_grid_dt = initial_grid的值应该是多少?我得到了SVM的sigma和C参数的上限和下限,但是不知道初始网格应该是什么?

在网络上的一个示例中,他们将随机搜索结果作为初始网格的输入。代码如下:

ctrl <- trainControl(method = "repeatedcv", repeats = 5)

svm_fit_bayes <- function(logC, logSigma) {
   ## Use the same model code but for a single (C, sigma) pair. 
   txt <- capture.output(
     mod <- train(y ~ ., data = train_dat,
                  method = "svmRadial",
                  preProc = c("center", "scale"),
                  metric = "RMSE",
                  trControl = ctrl,
                  tuneGrid = data.frame(C = exp(logC), sigma = exp(logSigma)))
  )
list(Score = -getTrainPerf(mod)[, "TrainRMSE"], Pred = 0)
 }
lower_bounds <- c(logC = -5, logSigma = -9)
 upper_bounds <- c(logC = 20, logSigma = -0.75)
 bounds <- list(logC = c(lower_bounds[1], upper_bounds[1]),
                logSigma = c(lower_bounds[2], upper_bounds[2]))

## Create a grid of values as the input into the BO code
 initial_grid <- rand_search$results[, c("C", "sigma", "RMSE")]
 initial_grid$C <- log(initial_grid$C)
 initial_grid$sigma <- log(initial_grid$sigma)
 initial_grid$RMSE <- -initial_grid$RMSE
 names(initial_grid) <- c("logC", "logSigma", "Value")

library(rBayesianOptimization)

    ba_search <- BayesianOptimization(svm_fit_bayes,
                                       bounds = bounds,
                                       init_grid_dt = initial_grid, 
                                       init_points = 0, 
                                       n_iter = 30,
                                       acq = "ucb", 
                                       kappa = 1, 
                                       eps = 0.0,
                                       verbose = TRUE)

0 个答案:

没有答案