# a grid search for an SVM (with a tiny number of points...)
# note how easily we can optimize on a log-scale
ps = makeParamSet(
makeNumericParam("C", lower = -12, upper = 12, trafo = function(x) 2^x),
makeNumericParam("sigma", lower = -12, upper = 12, trafo = function(x) 2^x)
)
ctrl = makeTuneControlGrid(resolution = 2L)
rdesc = makeResampleDesc("CV", iters = 2L)
res = tuneParams("classif.ksvm", iris.task, rdesc, par.set = ps, control = ctrl)
print(res)
# access data for all evaluated points
print(head(as.data.frame(res$opt.path)))
print(head(as.data.frame(res$opt.path, trafo = TRUE)))
# access data for all evaluated points - alternative
print(head(generateHyperParsEffectData(res)))
print(head(generateHyperParsEffectData(res, trafo = TRUE)))
## Not run: ------------------------------------
# # we optimize the SVM over 3 kernels simultanously
# # note how we use dependent params (requires = ...) and iterated F-racing here
# ps = makeParamSet(
# makeNumericParam("C", lower = -12, upper = 12, trafo = function(x) 2^x),
# makeDiscreteParam("kernel", values = c("vanilladot", "polydot", "rbfdot")),
# makeNumericParam("sigma", lower = -12, upper = 12, trafo = function(x) 2^x,
# requires = quote(kernel == "rbfdot")),
# makeIntegerParam("degree", lower = 2L, upper = 5L,
# requires = quote(kernel == "polydot"))
# )
# print(ps)
# ctrl = makeTuneControlIrace(maxExperiments = 5, nbIterations = 1, minNbSurvival = 1)
# rdesc = makeResampleDesc("Holdout")
# res = tuneParams("classif.ksvm", iris.task, rdesc, par.set = ps, control = ctrl)
# print(res)
# print(head(as.data.frame(res$opt.path)))
#
# # include the training set performance as well
# rdesc = makeResampleDesc("Holdout", predict = "both")
# res = tuneParams("classif.ksvm", iris.task, rdesc, par.set = ps,
# control = ctrl, measures = list(mmce, setAggregation(mmce, train.mean)))
# print(res)
# print(head(as.data.frame(res$opt.path)))
## ---------------------------------------------
Run the code above in your browser using DataLab