mlrHyperopt icon indicating copy to clipboard operation
mlrHyperopt copied to clipboard

default par.configs for ranger

Open PhilippPro opened this issue 7 years ago • 3 comments

I looked up your default parameter space for ranger and this is not really suitable for bigger datasets.

                 Type len Def  Constr Req Tunable Trafo
mtry          integer   -   2  1 to 4   -    TRUE     -
min.node.size integer   -   1 1 to 10   -    TRUE     -

So I put my own par.configs:

par.set = makeParamSet(
  makeIntegerParam(
    id = "mtry",
    lower = 1,
    upper = expression(p),
    default = expression(round(p^0.5))),
makeIntegerParam(
  id = "min.node.size",
  lower = 1,
  upper = expression(round(n/10)),
  default = 1),
keys = c("p", "n"))
par.config = makeParConfig(
  par.set = par.set,
  par.vals = list(num.trees = 2000),
  learner.name = "ranger"
)

Maybe wanna change the default values to this values? I am thinking about which to use in the benchmark study. ;)

I already uploaded them via

uploadParConfig(par.config, "[email protected]")
ranger.configs = downloadParConfigs(ids = "52", learner.class = getLearnerClass(my.learner))

PhilippPro avatar Sep 07 '17 08:09 PhilippPro

  1. What you show has to be a par.set with already evaluated expressions. As you can see here all have data dependent values for mtry. Only min.node.size is fixed.

  2. Well it's always hard to decide for a default. Mostly just "copied" what they use in caret to have a base that can easily be improved :wink:.

  3. Actually I don't know if I would like the full possible range for mtry for tuning. An interval around the default value seems to be more useful from my perspective. Or do you have experiences where the tuned setting was close to the extremes?

jakob-r avatar Sep 07 '17 09:09 jakob-r

  1. Ah ok, sorry I was not aware of this, but it is also hard to find out, is it? Then I will just take these parameters.
  2. Ok, that is reasonable.
  3. Yes, that is possible, I think, e.g. if there is only one variable with influence.

PhilippPro avatar Sep 07 '17 10:09 PhilippPro

  1. No? getDefaultParConfig("classif.ranger")
  2. Reasonable, but that reminds me of the sentence I heard one "If hyperparameter tuning is your answer, then your preprocessing probably sucks". I do not fully agree but in this case: Doing "hyperparameter tuning" to find out that only one variable has influence is not good practice.

jakob-r avatar Sep 07 '17 11:09 jakob-r