diff --git a/.github/workflows/dev-cmd-check.yml b/.github/workflows/dev-cmd-check.yml index c0d7283a..f481ead6 100644 --- a/.github/workflows/dev-cmd-check.yml +++ b/.github/workflows/dev-cmd-check.yml @@ -32,6 +32,7 @@ jobs: config: - {os: ubuntu-latest, r: 'release', dev-package: 'mlr-org/bbotk'} - {os: ubuntu-latest, r: 'release', dev-package: 'mlr-org/mlr3'} + - {os: ubuntu-latest, r: 'release', dev-package: "mlr-org/mlr3learners', 'mlr-org/mlr3pipelines', 'mlr-org/bbotk', 'mlr-org/paradox"} steps: - uses: actions/checkout@v3 @@ -48,7 +49,7 @@ jobs: needs: check - name: Install dev versions - run: pak::pkg_install('${{ matrix.config.dev-package }}') + run: pak::pkg_install(c('${{ matrix.config.dev-package }}')) shell: Rscript {0} - uses: mxschmitt/action-tmate@v3 diff --git a/NEWS.md b/NEWS.md index 7b6ac71e..d099b4a8 100644 --- a/NEWS.md +++ b/NEWS.md @@ -10,6 +10,7 @@ * fix: Include `FSelector` in hash of `AutoFSelector`. * refactor: Change default batch size of `FSelectorRandomSearch` to 10. * feat: Add `batch_size` parameter to `FSelectorExhaustiveSearch` to reduce memory consumption. +* Compatibility with upcoming paradox release. # mlr3fselect 0.11.0 diff --git a/R/FSelectorExhaustiveSearch.R b/R/FSelectorExhaustiveSearch.R index 92d556ca..add13cd1 100644 --- a/R/FSelectorExhaustiveSearch.R +++ b/R/FSelectorExhaustiveSearch.R @@ -33,7 +33,7 @@ FSelectorExhaustiveSearch = R6Class("FSelectorExhaustiveSearch", initialize = function() { ps = ps( max_features = p_int(lower = 1L), - batch_size = p_int(lower = 1L, default = 10L, tags = "required") + batch_size = p_int(lower = 1L, tags = "required") ) ps$values = list(batch_size = 10L) diff --git a/R/FSelectorRandomSearch.R b/R/FSelectorRandomSearch.R index 0664d7f8..8a0c65b9 100644 --- a/R/FSelectorRandomSearch.R +++ b/R/FSelectorRandomSearch.R @@ -65,7 +65,7 @@ FSelectorRandomSearch = R6Class("FSelectorRandomSearch", initialize = function() { ps = ps( max_features = p_int(lower = 1L), - batch_size = p_int(lower = 1L, default = 10L, tags = "required") + batch_size = p_int(lower = 1L, tags = "required") ) ps$values = list(batch_size = 10L) diff --git a/R/FSelectorShadowVariableSearch.R b/R/FSelectorShadowVariableSearch.R index 4aefe9ce..46ffe1bf 100644 --- a/R/FSelectorShadowVariableSearch.R +++ b/R/FSelectorShadowVariableSearch.R @@ -101,7 +101,10 @@ FSelectorShadowVariableSearch = R6Class("FSelectorShadowVariableSearch", task$cbind(data) # add shadow variables to domain - inst$objective$domain = ParamSet$new(map(inst$objective$task$feature_names, function(s) ParamLgl$new(id = s))) + fnames = inst$objective$task$feature_names + params = rep(list(p_lgl()), length(inst$objective$task$feature_names)) + names(params) = fnames + inst$objective$domain = do.call(ps, params) # add shadow variables to search_space inst$archive$search_space = inst$objective$domain diff --git a/R/helper.R b/R/helper.R index cb87618c..6684e822 100644 --- a/R/helper.R +++ b/R/helper.R @@ -1,9 +1,19 @@ task_to_domain = function(task) { - ParamSet$new(map(task$feature_names, function(s) ParamLgl$new(id = s))) + params = rep(list(p_lgl()), length(task$feature_names)) + names(params) = task$feature_names + do.call(ps, params) } measures_to_codomain = function(measures) { - Codomain$new(map(as_measures(measures), function(s) { - ParamDbl$new(id = s$id, tags = ifelse(s$minimize, "minimize", "maximize")) - })) + measures = as_measures(measures) + domains = map(measures, function(s) { + if ("set_id" %in% names(ps())) { + # old paradox + get("ParamDbl")$new(id = s$id, tags = ifelse(s$minimize, "minimize", "maximize")) + } else { + p_dbl(tags = ifelse(s$minimize, "minimize", "maximize")) + } + }) + names(domains) = ids(measures) + Codomain$new(domains) }