This function estimates parameters for SVM(Gaussian Kernel) based on bayesian optimization
svm_cv_opt(data, label, gamma_range = c(10^(-3), 10^1),
cost_range = c(10^(-2), 10^2), svm_kernel = "radial",
degree_range = c(3L, 10L), coef0_range = c(10^(-1), 10^1), n_folds,
init_points = 4, n_iter = 10, acq = "ei", kappa = 2.576, eps = 0,
optkernel = list(type = "exponential", power = 2))
data
label for classification
The range of gamma. Default is c(10 ^ (-3), 10 ^ 1)
The range of C(Cost). Default is c(10 ^ (-2), 10 ^ 2)
Kernel used in SVM. You might consider changing some of the following parameters, depending on the kernel type.
linear: \(u'v\)
polynomial: \((\gamma u'v +coef0)^{degree}\)
radial basis: \(exp(-\gamma|u-v|^2)\)
sigmoid: \(tanh(\gamma u'v + coef0)\)
Parameter needed for kernel of type polynomial. Default is c(3L, 10L)
Parameter needed for kernels of type polynomial
and sigmoid
. Default is c(10 ^ (-1), 10 ^ 1)
if a integer value k>0 is specified, a k-fold cross validation on the training data is performed to assess the quality of the model: the accuracy rate for classification and the Mean Squared Error for regression
Number of randomly chosen points to sample the target function before Bayesian Optimization fitting the Gaussian Process.
Total number of times the Bayesian Optimization is to repeated.
Acquisition function type to be used. Can be "ucb", "ei" or "poi".
ucb
GP Upper Confidence Bound
ei
Expected Improvement
poi
Probability of Improvement
tunable parameter kappa of GP Upper Confidence Bound, to balance exploitation against exploration, increasing kappa will make the optimized hyperparameters pursuing exploration.
tunable parameter epsilon of Expected Improvement and Probability of Improvement, to balance exploitation against exploration, increasing epsilon will make the optimized hyperparameters are more spread out across the whole range.
Kernel (aka correlation function) for the underlying Gaussian Process. This parameter should be a list that specifies the type of correlation function along with the smoothness parameter. Popular choices are square exponential (default) or matern 5/2
The test accuracy and a list of Bayesian Optimization result is returned:
Best_Par
a named vector of the best hyperparameter set found
Best_Value
the value of metrics achieved by the best hyperparameter set
History
a data.table
of the bayesian optimization history
Pred
a data.table
with validation/cross-validation prediction for each round of bayesian optimization history
# NOT RUN {
library(MlBayesOpt)
set.seed(71)
res0 <- svm_cv_opt(data = iris,
label = Species,
n_folds = 3,
init_points = 10,
n_iter = 1)
# }
Run the code above in your browser using DataLab