Agnes g2g
2021-May-04 20:23 UTC
[R] Warning “Unknown or uninitialised column: `ntree`.” when trying to pass hyperparameters to a learner with package mlr
?Dear all, I posted this question on stats exchange and got the message that it was off-topic.https://stats.stackexchange.com/questions/522745/warning-unknown-or-uninitialised-column-ntree-when-trying-to-pass-hyperpar They suggested to use this email list instead. So that's why I am posting it here. I have read the instructions, but if I have overlooked something that said this question does not belong on this mailing list, I apologise. Thanks in advance for reading this message! Kind regards, Agnes Wattel problem I want to do a grid search with different hyperparameters that are provided by a self-made grid. But when I am running the code I get a warning: "Unknown or uninitialised column: ntree." create grid gs <- list(ntree = c(50,100,150,200,300,500,550),mtry = c(1,2,3,4,5)) %>% cross_df() select hyperparameters for (h in 1:nrow(gs)) { ntree_entry <- gs$ntree[h] mtry_entry <- gs$mtry[h] (...) lrn <- makeMultilabelClassifierChainsWrapper(lrn, order = NULL) lrn <- setPredictType(lrn,"prob") task <- makeMultilabelTask(data = data[train_lines,], target = label_bact) mod <- mlr::train(lrn,task) } On the place of (...) I have tried two different ways to get the hyperparameters into the learner: option 1: pass hyperparameters to the learner lrn <- makeLearner("classif.randomForest",ntree = ntree_entry,mtry = mtry_entry) option 2: pass hyperparameters to the learner lrn <- makeLearner("classif.randomForest") lrn <- setHyperPars(lrn,par.vals = list(ntree = ntree_entry,mtry = mtry_entry)) check The console tells me that the hyperparameters are in the learner:>lrnLearner classif.randomForest from package randomForest Type: classif Name: Random Forest; Short name: rf Class: classif.randomForest Properties: twoclass,multiclass,numerics,factors,ordered,prob,class.weights,oobpreds,featimp Predict-Type: response Hyperparameters: ntree=50,mtry=1 ntree and mtry are hyperparameters that are known to the makeLearner, because they are both in getParamSet:> getParamSet("classif.randomForest")Type len Def Constr Req Tunable Trafo ntree integer - 500 1 to Inf - TRUE - mtry integer - - 1 to Inf - TRUE - replace logical - TRUE - - TRUE - classwt numericvector <NA> - 0 to Inf - TRUE - cutoff numericvector <NA> - 0 to 1 - TRUE - strata untyped - - - - FALSE - sampsize integervector <NA> - 1 to Inf - TRUE - nodesize integer - 1 1 to Inf - TRUE - maxnodes integer - - 1 to Inf - TRUE - importance logical - FALSE - - TRUE - localImp logical - FALSE - - TRUE - proximity logical - FALSE - - FALSE - oob.prox logical - - - Y FALSE - norm.votes logical - TRUE - - FALSE - do.trace logical - FALSE - - FALSE - keep.forest logical - TRUE - - FALSE - keep.inbag logical - FALSE - - FALSE - Question Why do I get the message "Unknown or uninitialised column: ntree"? Although it is only a warning, not an error, I am afraid that it will only use the first line of the grid that I created. The sizes of the models seem to confirm that. They all have the same size. I hope that someone can help me with this problem. Thanks in advance! [[alternative HTML version deleted]]