tune                  package:e1071                  R Documentation

_P_a_r_a_m_e_t_e_r _t_u_n_i_n_g _o_f _f_u_c_t_i_o_n_s _u_s_i_n_g _g_r_i_d _s_e_a_r_c_h

_D_e_s_c_r_i_p_t_i_o_n:

     This generic function tunes hyperparameters of statistical methods
     using a grid search over supplied parameter ranges.

_U_s_a_g_e:

     tune(method, train.x, train.y = NULL, data = list(), validation.x =
          NULL, validation.y = NULL, ranges = NULL, predict.func = predict,
          tunecontrol = tune.control(), ...)
     best.tune(...)

_A_r_g_u_m_e_n_t_s:

  method: function to be tuned.

 train.x: either a formula or a matrix of predictors.

 train.y: the response variable if 'train.x' is a predictor matrix.
          Ignored if 'train.x' is a formula.

    data: data, if a formula interface is used. Ignored, if predictor
          matrix and response are supplied directly.

validation.x: an optional validation set. Depending on whether a
          formula interface is used or not, the response can be
          included in 'validation.x' or separately speciefied using
          'validation.y'.

validation.y: if no formula interface is used, the response of the
          (optional) validation set.

  ranges: a named list of parameter vectors spanning the sampling
          space. The vectors will usually be created by 'seq'.

predict.func: optional predict function, if the standard 'predict'
          behaviour is inadequate.

tunecontrol: object of class '"tune.control"', as created by the
          function 'tune.control()'. If omitted, 'tune.control()' gives
          the defaults.

     ...: Further parameters passed to the training functions.

_D_e_t_a_i_l_s:

     As performance measure, the classification error is used for
     classification, and the mean squared error for regression. It is
     possible to specify only one parameter combination (i.e., vectors
     of length 1) to obtain an error estimation of the specified type
     (bootstrap, cross-classification, etc.) on the given data set. For
     conveneince, there are several 'tune.foo()' wrappers defined,
     e.g., for 'nnet()', 'randomForest()', 'rpart()', 'svm()', and
     'knn()'.

_V_a_l_u_e:

     For 'tune', an object of class 'tune', including the components: 

best.parameters: a 1 x k data frame, k number of parameters.

best.performance: best achieved performance.

performances: if requested, a data frame of all parameter combinations
          along with the corresponding performance results.

if requested, the model trained on the complete training data
using the best parameter combination.: 

     'best.tune' returns the best model detected by 'tune'.

_A_u_t_h_o_r(_s):

     David Meyer
      david.meyer@ci.tuwien.ac.at

_S_e_e _A_l_s_o:

     'tune.control', 'plot.tune', 'tune.svm', tune.wrapper

_E_x_a_m_p_l_e_s:

       data(iris)
       ## tune `svm' for classification with RBF-kernel (default in svm),
       ## using one split for training/validation set
       
       obj <- tune(svm, Species~., data = iris, 
                   ranges = list(gamma = 2^(-1:1), cost = 2^(2:4)),
                   tunecontrol = tune.control(sampling = "fix")
                  )

       ## alternatively:
       ## obj <- tune.svm(Species~., data = iris, gamma = 2^(-1:1), cost = 2^(2:4))

       summary(obj)
       plot(obj)

       ## tune `knn' using a convenience function; this time with the
       ## conventional interface and bootstrap sampling:
       x <- iris[,-5]
       y <- iris[,5]
       obj2 <- tune.knn(x, y, k = 1:5, tunecontrol = tune.control(sampling = "boot"))
       summary(obj2)
       plot(obj2)

       ## tune `rpart' for regression, using 10-fold cross validation (default)
       data(mtcars)
       obj3 <- tune.rpart(mpg~., data = mtcars, minsplit = c(5,10,15))
       summary(obj3)
       plot(obj3)

       ## simple error estimation for lm using 10-fold cross validation
       tune(lm, mpg~., data = mtcars)

