mlr3fselect 1.7.0
CRAN release: 2026-08-23
- fix: Errors raised by mlr3fselect are structured conditions with the
Mlr3Errorclass now, so they can be caught by class and are formatted with cli (#198). - fix: Loading the package repeatedly duplicated the entries that mlr3fselect adds to the reflections of bbotk and mlr3 (#199).
- fix:
ArchiveAsyncFSelectpushed results with the removedrush::Rush$push_results()method. - fix:
EnsembleFSResult$pareto_front()correctly now handles ties in the pareto front: in edge cases, it returned dominated points for minimizing measures and discarded the true front for maximizing measures (#170). - fix:
ensemble_fselect()dropped theimportancecolumn for subclasses ofFSelectorBatchRFE. The column is now added whenever the feature selection result contains importance scores (#195). - fix:
embedded_ensemble_fselect()instantiated the [mlr3::Resampling] passed toinit_resamplingby reference, so the resampling of the user was changed and reused the row ids of the first task when applied to another task (#179). - fix:
EnsembleFSResult$knee_points()silently returned a row ofNAwhen the Pareto front did not span a range in both dimensions. The first point of the Pareto front is returned with a warning now (#171). - fix:
EnsembleFSResult$stability()cached the results by stability measure only, so the same measure requested with differentstability_argsreturned the cached value of the first call (#189). - fix:
ensemble_fselect()andembedded_ensemble_fselect()failed with a cryptic error when a single [mlr3::Learner] was passed to thelearnersargument because the result ofas_learners()was discarded (#178). - fix:
extract_inner_fselect_archives()ignored theexclude_columnsargument because it was passed positionally toas.data.table()where it landed in the...argument (#180). - fix:
as.data.table()on anArchiveBatchFSelectreturned then_featurescolumn as a list column instead of an integer column, so operations such assort()failed with'x' must be atomic(#181). - fix:
fs("sequential")$optimization_path()returned the first evaluated feature set of each batch instead of the best one, so the selected feature set was usually missing from the reported path (#182). - fix:
fs("rfecv")left the resampling of the objective set to an insample resampling, so subsequent evaluations on the same instance silently resampled in-sample (#187). - fix: The
mlr3fselect.backupcallback deleted the backup of the previous batch before it wrote the new one, so a crash in between lost the complete run. The benchmark result is now written to a temporary file and renamed afterwards (#188). - BREAKING CHANGE: The
mlr3fselect.backupcallback requires thepathargument now. Previously it wrote abmr.rdsfile into the working directory of the user (#188). - fix:
as.data.table()on anEnsembleFSResultaccepts the documentedbenchmark_resultargument now to omit the task, learner and resampling columns (#190). - fix: The
$print()methods ofArchiveBatchFSelect,ArchiveAsyncFSelect,ArchiveAsyncFSelectFrozen,AutoFSelectorandFSelectorerrored withunused argumentwhen arguments such asdigitswere passed (#190). - fix:
fs("rfecv")had the same label asfs("rfe"), so both were indistinguishable inas.data.table(mlr_fselectors). Its manual page also instructed to construct it withfs("rfe")(#191). - fix:
AutoFSelectorignored thepredict_typewhen the final model was fitted, so$predict()returned response predictions although e.g."prob"was set. Errors raised while setting the predict type on the final model are not swallowed anymore (#184). - fix: The
$archive,$learner,$fselect_instanceand$fselect_resultbindings ofAutoFSelectorare read-only now. Previously an assignment failed withunused argumentinstead of the usual read-only error (#186). - fix:
AutoFSelector$train()did not check the row ids of an instantiated inner resampling for cross-validation and reported a wrong set number for holdout (#197). - fix:
fs("shadow_variable_search")left the shadow variables in the task, domain and search space of the instance when the feature selection was aborted because the first selected feature was a shadow variable (#183). - fix:
ArchiveBatchFSelect$best()andArchiveAsyncFSelect$best()returned an empty table or a row of missing values when a single score in the archive wasNA. Missing scores are now skipped.ArchiveAsyncFSelect$best()also ignored theties_methodset during construction (#177). - fix: The
mlr3fselect.svm_rfecallback accepted support vector machines without atypeorkernelsetting, although onlytype = "C-classification"andkernel = "linear"are supported. The callback now also errors on multi-class tasks for which the importance scores are not defined (#173). - fix: The asynchronous feature selection ignored the
always_includedcolumn role. Columns with this role were excluded from the models instead of being added to every feature subset (#175). - fix: The
mlr3fselect.one_se_rulecallback errored on archives with a single evaluation or with missing scores, and wrote then_featurescolumn as a list column instead of an integer column (#174). - fix:
extract_inner_fselect_results()added theiterationandfselect_instancecolumns to the result of the innerFSelectInstanceby reference, which created a circular reference between the instance and its own result (#172). - fix:
fs("rfe")andfs("rfecv")failed with an internaldata.tableerror whenstore_benchmark_result = FALSEwas set because the importance scores were read from the benchmark result of the archive (#169). - fix:
fs("rfecv", recursive = FALSE)failed with an internaldata.tableerror because the importance scores of all resampling iterations were written to a single archive row (#168). - fix:
fs("rfecv")ignored the direction of the measure and selected the feature set size with the worst mean performance for minimizing measures such asmsr("classif.ce")ormsr("regr.mse"). Feature selection results obtained withfs("rfecv")and a minimizing measure are invalid and should be recomputed (#167).
mlr3fselect 1.6.0
CRAN release: 2026-05-21
- refactor: Remove rush backward compatibility.
- docs: Add hEFS reference.
- compatibility:
fastVoteR0.0.3 - feat: Add
$rm_zero_features()method inEnsembleFSResultto remove result rows where no features were selected.
mlr3fselect 1.5.0
CRAN release: 2025-11-27
- fix: Add
always_includedcolumn role to all registered tasks. - perf: Add fast aggregation for
ResampleResultandBenchmarkResultobjects to speed up objective function evaluation.
mlr3fselect 1.4.0
CRAN release: 2025-07-31
- feat: Introduce asynchronous optimization with the
FSelectorAsyncandFSelectInstanceAsync*classes. - feat: Add
max_nfeaturesargument in thepareto_front()andknee_points()methods of anEnsembleFSResult(). - feat: Classes are now printed with the
clipackage.
mlr3fselect 1.3.0
CRAN release: 2025-01-16
- refactor: Use fastVoteR for feature ranking in
EnsembleFSResult()objects - feat: Add embedded ensemble feature selection
embedded_ensemble_fselect() - refactor/perf:
ensemble_fselect()andEnsembleFSResult() - feat: Add
c.EnsembleFSResult(...)andEnsembleFSResult$combine(...)methods
mlr3fselect 1.2.0
CRAN release: 2024-10-25
- feat: Add internal tuning callback
mlr3fselect.internal_tuning. - fix: Register mlr3fselect in the
mlr_reflections$loaded_packagesfield.
mlr3fselect 1.1.0
CRAN release: 2024-09-09
- compatibility: mlr3 0.21.0
- fix: Delete intermediate
BenchmarkResultinObjectiveFSelectBatchafter optimization. - fix: Reloading mlr3fselect does not duplicate column roles anymore.
- perf: Remove
x_domaincolumn from archive.
mlr3fselect 1.0.0
CRAN release: 2024-06-29
- feat: Add ensemble feature selection function
ensemble_fselect(). - BREAKING CHANGE: The
FSelectorclass isFSelectorBatchnow. - BREAKING CHANGE: THe
FSelectInstanceSingleCritandFSelectInstanceMultiCritclasses areFSelectInstanceBatchSingleCritandFSelectInstanceBatchMultiCritnow. - BREAKING CHANGE: The
CallbackFSelectclass isCallbackBatchFSelectnow. - BREAKING CHANGE: The
ContextEvalclass isContextBatchFSelectnow.
mlr3fselect 0.12.0
CRAN release: 2024-03-09
- feat: Add number of features to
instance$result. - feat: Add
ties_methodoptions"least_features"and"random"toArchiveBatchFSelect$best(). - refactor: Optimize runtime of
ArchiveBatchFSelect$best()method. - feat: Add importance scores to result of
FSelectorRFE. - feat: Add number of features to
as.data.table.ArchiveBatchFSelect(). - feat: Features can be always included with the
always_includecolumn role. - fix: Add
$phash()method toAutoFSelector. - fix: Include
FSelectorin hash ofAutoFSelector. - refactor: Change default batch size of
FSelectorBatchRandomSearchto 10. - feat: Add
batch_sizeparameter toFSelectorBatchExhaustiveSearchto reduce memory consumption. - compatibility: Work with new paradox version 1.0.0
mlr3fselect 0.11.0
CRAN release: 2023-03-02
- BREAKING CHANGE: The
methodparameter offselect(),fselect_nested()andauto_fselector()is renamed tofselector. OnlyFSelectorobjects are accepted now. Arguments to the fselector cannot be passed with...anymore. - BREAKING CHANGE: The
fselectparameter ofFSelectoris moved to the first position to achieve consistency with the other functions. - docs: Update resources sections.
- docs: Add list of default measures.
mlr3fselect 0.10.0
CRAN release: 2023-02-21
- feat: Add callback
mlr3fselect.svm_rfeto run recursive feature elimination on linear support vector machines. - refactor: The importance scores in
FSelectorRFEare now aggregated by rank instead of averaging them. - feat: Add
FSelectorRFECVoptimizer to run recursive feature elimination with cross-validation. - refactor:
FSelectorRFEworks withoutstore_models = TRUEnow. - feat: The
as.data.table.ArchiveBatchFSelect()function additionally returns a character vector of selected features for each row. - refactor: Add
callbacksargument tofsi()function.
mlr3fselect 0.9.1
CRAN release: 2023-01-26
- refactor: Remove internal use of
mlr3pipelines. - fix: Feature selection with measures that require the importance or oob error works now.
mlr3fselect 0.9.0
CRAN release: 2022-12-21
- fix: Add
genalgto required packages ofFSelectorBatchGeneticSearch. - feat: Add new callback that backups the benchmark result to disk after each batch.
- feat: Create custom callbacks with the
callback_batch_fselect()function.
mlr3fselect 0.8.0
CRAN release: 2022-11-16
- refactor:
FSelectorRFEthrows an error if the learner does not support the$importance()method. - refactor: The
AutoFSelectorstores the instance and benchmark result ifstore_models = TRUE. - refactor: The
AutoFSelectorstores the instance ifstore_benchmark_result = TRUE. - feat: Add missing parameters from
AutoFSelectortoauto_fselect(). - feat: Add
fsi()function to create aFSelectInstanceBatchSingleCritorFSelectInstanceBatchMultiCrit. - refactor: Remove
unnestoption fromas.data.table.ArchiveBatchFSelect()function.
mlr3fselect 0.7.0
CRAN release: 2022-04-08
- feat: Allow to pass
FSelectorobjects asmethodinfselect()andauto_fselector(). - feat: Added
$labeltoFSelectors. - docs: New examples with
fselect()function. - feat:
$help()method which opens manual page of aFSelector. - feat: Added a
as.data.table.DictionaryFSelectorfunction. - feat: Added
min_featuresparameter toFSelectorBatchSequential.
mlr3fselect 0.6.1
CRAN release: 2022-01-20
- Add
store_modelsflag tofselect(). - Remove
store_x_domainflag.
mlr3fselect 0.6.0
CRAN release: 2021-09-13
- Adds
AutoFSelector$base_learner()method to extract the base learner from nested learner objects. - Adds
fselect(),auto_fselector()andfselect_nested()sugar functions. - Adds
extract_inner_fselect_results()andextract_inner_fselect_archives()helper function to extract inner feature selection results and archives.
mlr3fselect 0.5.0
CRAN release: 2021-01-24
-
FSelectorRFEstores importance values of each evaluated feature set in archive. -
ArchiveBatchFSelect$datais a public field now.
mlr3fselect 0.4.0
CRAN release: 2020-10-22
- Compact in-memory representation of R6 objects to save space when saving mlr3 objects via saveRDS(), serialize() etc.
-
FSelectorRFEsupports fraction of features to retain in each iteration (feature_fraction), number of features to remove in each iteration (feature_number) and vector of number of features to retain in each iteration (subset_sizes). -
AutoFSelectis renamed toAutoFSelector. - To retrieve the inner feature selection results in nested resampling,
as.data.table(rr)$learner[[1]]$fselect_resultmust be used now. - Option to control
store_benchmark_result,store_modelsandcheck_valuesinAutoFSelector.store_fselect_instancemust be set as a parameter during initialization. - Adds
FSelectorBatchGeneticSearch. - Fixes
check_valuesflag inFSelectInstanceBatchSingleCritandFSelectInstanceBatchMultiCrit. - Removed dependency on orphaned package
bibtex. -
PipeOpSelectis internally used for task subsetting.
mlr3fselect 0.3.0
CRAN release: 2020-09-22
-
ArchiveisArchiveBatchFSelectnow which stores the benchmark result in$benchmark_result. This change removed the resample results from the archive but they can be still accessed via the benchmark result.
