When I try to crate a grid of parameters for training with caret I get various errors:
> my_grid <- createGrid("rf")
Error in if (p <= len) { : argument is of length zero
> my_grid <- createGrid("rf", 4)
Error in if (p <= len) { : argument is of length zero
> my_grid <- createGrid("rf", len=4)
Error in if (p <= len) { : argument is of length zero
The documentation for createGrid says:
This function creates a data frame that contains a grid of
complexity parameters specific methods.
Usage:
createGrid(method, len = 3, data = NULL)
Arguments:
method: a string specifying which classification model to use. See
'train' for a full list.
len: an integer specifying the number of points on the grid for
each tuning parameter.
data: the training data (only needed in the case where the 'method'
is 'cforest', 'earth', 'bagEarth', 'fda', 'bagFDA', 'rpart',
'svmRadial', 'pam', 'lars2', 'rf' or 'pls'). The outcome
should be in a column called '.outcome'.
and gives the following examples which work correctly:
createGrid("rda", 4)
createGrid("lm")
createGrid("nnet")
## data needed for SVM with RBF:
## Not run:
tmp <- iris
names(tmp)[5] <- ".outcome"
head(tmp)
createGrid("svmRadial", data = tmp, len = 4)
## End(Not run)
With this, what I am doing wrong?
Follow up question:
What is the connection between len as an argument to createGrid and tuneLength in the argument for train? Can len and tuneLength they be used together? What is their relationship?
Other helpful threads:
In case it helps, here is a thread describing how to use createGrid with train in caret: caret::train: specify model-generation-parameters