You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
the model fit fails if mtry is specified for the aorsf-engine. If it is not specified, it works with the default engine values.
library(bonsai)
#> Loading required package: parsnip# This works with default mtry valuerf_mod<-
rand_forest() %>%
set_engine(engine="aorsf") %>%
set_mode(mode="regression") %>%
set_args(min_n=1, trees=2, importance="permute") %>%
fit(
formula=mpg~. ,
data=mtcars
)
rf_mod#> parsnip model object#> #> ---------- Oblique random regression forest#> #> Linear combinations: Accelerated Linear regression#> N observations: 32#> N trees: 2#> N predictors total: 10#> N predictors per node: 4#> Average leaves per tree: 7.5#> Min observations in leaf: 1#> OOB stat value: 0.27#> OOB stat type: RSQ#> Variable importance: permute#> #> -----------------------------------------# Error occurs...rf_mod_w_mtry<-
rand_forest() %>%
set_engine(engine="aorsf") %>%
set_mode(mode="regression") %>%
set_args(mtry=3, min_n=1, trees=2, importance="permute") %>%
fit(
formula=mpg~. ,
data=mtcars
)
#> Error in ncol(source): object "x" not found
Thanks for the issue! Just confirming that I can reproduce this and 1) it does seem to be aorsf-specific (i.e. xgboost is not an issue) and 2) it doesn"t seem to be due to any changes in parsnip (issue persists with parsnip v1.0.0). min_cols() seems to be evaluated in a different environment than its usual.
Just saw this and thought I"d check it out. The issue appears to occur in parsnip:::make_form_call:
If we modify:
if (object$engine=="spark") {
env$x<-env$data
}
to
if (object$engine%in% c("spark", "aorsf")) {
env$x<-env$data
}
the x object will be recognized when you specify mtry.
@simonpcouch - would this solution be too hacky? A more general approach might change the call to aorsf::orsf, making it so that instead of mtry = min_cols(~3, x) we use mtry = min_cols(~3, data)
Hi,
the model fit fails if
mtry
is specified for theaorsf
-engine. If it is not specified, it works with the default engine values.Created on 2024-08-08 with reprex v2.0.2
The text was updated successfully, but these errors were encountered: