View source: R/optimizertuneRace.R
optimizertuneRace | R Documentation |
This functions enables users to tune the hyperparameters of different optimization algorithms.
optimizertuneRace( optimizer, psTune, funcEvals = 50, itersTune = 1000, trainInstanceList, minimize = TRUE, configurationsFile = NA, plotAblation = FALSE, ablationFile = NA, firstTest = 6, test = "F-test", seed = 1 )
optimizer |
[ |
psTune |
[ |
funcEvals |
[ |
itersTune |
[ |
trainInstanceList |
[ |
minimize |
[ |
configurationsFile |
[ |
plotAblation |
[ |
ablationFile |
[ |
firstTest |
[ |
test |
[ |
seed |
[ |
Elite configurations for defined tasks and an ablation analysis if plotAblation = TRUE.
[mlrMBO::mbo()
]
Manuel López-Ibànez, Leslie Pérez Cáceres, Jérémie Dubois-Lacoste, Thomas Stützle and Mauro Birattari, The irace Package:
User Guide. Preprint: https://cran.r-project.org/web/packages/irace/vignettes/irace-package.pdf
(2019).
optimize::plotBenchmark()
optimize::plotMboContourPlot()
## Not run: set.seed(1) library(mlrMBO) library(ParamHelpers) library(mlr) set.seed(1) # define problem 1 data1 <- data.frame(a = runif(50,10,5555), b = runif(50,-30000,-500), c = runif(50,0,1000)) data1$ratio <- rowSums(data1[,1:3]^2) data1$ratio <- data1$ratio/max(data1$ratio) colnames(data1) <- c("power", "time", "pressure","ratio") psOpt = makeParamSet( makeIntegerParam("power", lower = 10, upper = 5555), makeIntegerParam("time", lower = -30000, upper = -500), makeIntegerParam("pressure", lower = 0, upper = 1000) ) task1 = task( simulation = "regr.randomForest", data = data1, target = "ratio", psOpt = psOpt, minimize = FALSE ) # define problem 2 data2 <- data.frame(a = runif(80,0,0.25), b = runif(80, 0,0.1), c = runif(80,0,1), d = runif(80,0,1)) data2$interface <- rowSums((data2[,1:4]*8)^2) data2$interface <- data2$interface/max(data2$interface) colnames(data2) <- c("f", "k", "du","dv") psOpt = ParamHelpers::makeParamSet( ParamHelpers::makeNumericParam("f", lower = 0, upper = 0.25), ParamHelpers::makeNumericParam("k", lower = 0, upper = 0.1), ParamHelpers::makeNumericParam("du", lower = 0, upper = 1), ParamHelpers::makeNumericParam("dv", lower = 0, upper = 1) ) task2 = task( simulation = "regr.randomForest", data = data2, target = "interface", psOpt = psOpt, minimize = FALSE ) ################## Define problemList ############# problemList = generateProblemList(task1, task2) ### tune SMBO algorithm psTune = ParamHelpers::makeParamSet( ParamHelpers::makeDiscreteParam("design", values = c("maximinLHS", "optimumLHS")), ParamHelpers::makeDiscreteParam("surrogate", values = c("regr.randomForest", "regr.km")), ParamHelpers::makeDiscreteParam("covtype", values = c("matern5_2","matern3_2", "powexp", "gauss")), ParamHelpers::makeDiscreteParam("crit", values = c("makeMBOInfillCritAEI","makeMBOInfillCritCB", "makeMBOInfillCritAdaCB","makeMBOInfillCritEI")), ParamHelpers::makeNumericParam("cb.lambda", lower = 1, upper = 5, requires = quote(crit == "makeMBOInfillCritCB")), ParamHelpers::makeIntegerParam("cb.lambda.start", lower = 3, upper = 10, requires = quote(crit == "makeMBOInfillCritAdaCB")), ParamHelpers::makeNumericParam("cb.lambda.end", lower = 0, upper = 3, requires = quote(crit == "makeMBOInfillCritAdaCB")) ) tuneResultsMBO = optimizertuneRace("optimizeMBO", psTune, funcEvals = 55, itersTune = 1000, trainInstanceList = problemList, minimize = FALSE, plotAblation = TRUE, ablationFile = "ablationMBOPlot.pdf", seed = 1) ## tune ES algorithm psTune = ParamHelpers::makeParamSet( ParamHelpers::makeIntegerParam("nu", lower = 5, upper = 15), ParamHelpers::makeIntegerParam("mue", lower = 5, upper = 15), ParamHelpers::makeNumericParam("sigmaInit", lower = 0.7, upper = 1.3), ParamHelpers::makeNumericParam("tau", lower = 0.7, upper = 1.3), ParamHelpers::makeIntegerParam("stratReco", lower = 1, upper = 4), ParamHelpers::makeIntegerParam("objReco", lower = 1, upper = 4) ) tuneResultsES = optimizertuneRace("optimizeES", psTune, funcEvals = 65, itersTune = 1000, trainInstanceList = problemList, minimize = FALSE, plotAblation = TRUE, ablationFile = "ablationESPlot.pdf", seed = 1) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.