mlr3fselect 1.7.0
- fix: Errors raised by mlr3fselect are structured conditions with the
Mlr3Error class 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:
ArchiveAsyncFSelect pushed results with the
removed rush::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 the
importance column for subclasses of
FSelectorBatchRFE. The column is now added whenever the
feature selection result contains importance scores (#195).
- fix:
embedded_ensemble_fselect() instantiated the
[mlr3::Resampling] passed to init_resampling by 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 of NA when 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 different
stability_args returned the cached value of the first call
(#189).
- fix:
ensemble_fselect() and
embedded_ensemble_fselect() failed with a cryptic error
when a single [mlr3::Learner] was passed to the learners
argument because the result of as_learners() was discarded
(#178).
- fix:
extract_inner_fselect_archives() ignored the
exclude_columns argument because it was passed positionally
to as.data.table() where it landed in the ...
argument (#180).
- fix:
as.data.table() on an
ArchiveBatchFSelect returned the n_features
column as a list column instead of an integer column, so operations such
as sort() 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.backup callback 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.backup callback
requires the path argument now. Previously it wrote a
bmr.rds file into the working directory of the user
(#188).
- fix:
as.data.table() on an
EnsembleFSResult accepts the documented
benchmark_result argument now to omit the task, learner and
resampling columns (#190).
- fix: The
$print() methods of
ArchiveBatchFSelect, ArchiveAsyncFSelect,
ArchiveAsyncFSelectFrozen, AutoFSelector and
FSelector errored with unused argument when
arguments such as digits were passed (#190).
- fix:
fs("rfecv") had the same label as
fs("rfe"), so both were indistinguishable in
as.data.table(mlr_fselectors). Its manual page also
instructed to construct it with fs("rfe") (#191).
- fix:
AutoFSelector ignored the
predict_type when 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_instance and $fselect_result bindings
of AutoFSelector are read-only now. Previously an
assignment failed with unused argument instead 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() and
ArchiveAsyncFSelect$best() returned an empty table or a row
of missing values when a single score in the archive was
NA. Missing scores are now skipped.
ArchiveAsyncFSelect$best() also ignored the
ties_method set during construction (#177).
- fix: The
mlr3fselect.svm_rfe callback accepted support
vector machines without a type or kernel
setting, although only type = "C-classification" and
kernel = "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_included column role. Columns with this role were
excluded from the models instead of being added to every feature subset
(#175).
- fix: The
mlr3fselect.one_se_rule callback errored on
archives with a single evaluation or with missing scores, and wrote the
n_features column as a list column instead of an integer
column (#174).
- fix:
extract_inner_fselect_results() added the
iteration and fselect_instance columns to the
result of the inner FSelectInstance by reference, which
created a circular reference between the instance and its own result
(#172).
- fix:
fs("rfe") and fs("rfecv") failed with
an internal data.table error when
store_benchmark_result = FALSE was set because the
importance scores were read from the benchmark result of the archive
(#169).
- fix:
fs("rfecv", recursive = FALSE) failed with an
internal data.table error 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 as msr("classif.ce") or
msr("regr.mse"). Feature selection results obtained with
fs("rfecv") and a minimizing measure are invalid and should
be recomputed (#167).
mlr3fselect 1.6.0
- refactor: Remove rush backward compatibility.
- docs: Add hEFS reference.
- compatibility:
fastVoteR 0.0.3
- feat: Add
$rm_zero_features() method in
EnsembleFSResult to remove result rows where no features
were selected.
mlr3fselect 1.5.1
- compatibility: rush 1.0.0
mlr3fselect 1.5.0
- fix: Add
always_included column role to all registered
tasks.
- perf: Add fast aggregation for
ResampleResult and
BenchmarkResult objects to speed up objective function
evaluation.
mlr3fselect 1.4.0
- feat: Introduce asynchronous optimization with the
FSelectorAsync and FSelectInstanceAsync*
classes.
- feat: Add
max_nfeatures argument in the
pareto_front() and knee_points() methods of an
EnsembleFSResult().
- feat: Classes are now printed with the
cli
package.
mlr3fselect 1.3.0
- refactor: Use fastVoteR for feature
ranking in
EnsembleFSResult() objects
- feat: Add embedded ensemble feature selection
embedded_ensemble_fselect()
- refactor/perf:
ensemble_fselect() and
EnsembleFSResult()
- feat: Add
c.EnsembleFSResult(...) and
EnsembleFSResult$combine(...) methods
mlr3fselect 1.2.1
- compatibility: mlr3 0.22.0
mlr3fselect 1.2.0
- feat: Add internal tuning callback
mlr3fselect.internal_tuning.
- fix: Register mlr3fselect in the
mlr_reflections$loaded_packages field.
mlr3fselect 1.1.1
- compatibility: bbotk 1.1.1
mlr3fselect 1.1.0
- compatibility: mlr3 0.21.0
- fix: Delete intermediate
BenchmarkResult in
ObjectiveFSelectBatch after optimization.
- fix: Reloading mlr3fselect does not duplicate column roles
anymore.
- perf: Remove
x_domain column from archive.
mlr3fselect 1.0.0
- feat: Add ensemble feature selection function
ensemble_fselect().
- BREAKING CHANGE: The
FSelector class is
FSelectorBatch now.
- BREAKING CHANGE: THe
FSelectInstanceSingleCrit and
FSelectInstanceMultiCrit classes are
FSelectInstanceBatchSingleCrit and
FSelectInstanceBatchMultiCrit now.
- BREAKING CHANGE: The
CallbackFSelect class is
CallbackBatchFSelect now.
- BREAKING CHANGE: The
ContextEval class is
ContextBatchFSelect now.
mlr3fselect 0.12.0
- feat: Add number of features to
instance$result.
- feat: Add
ties_method options
"least_features" and "random" to
ArchiveBatchFSelect$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_include column role.
- fix: Add
$phash() method to
AutoFSelector.
- fix: Include
FSelector in hash of
AutoFSelector.
- refactor: Change default batch size of
FSelectorBatchRandomSearch to 10.
- feat: Add
batch_size parameter to
FSelectorBatchExhaustiveSearch to reduce memory
consumption.
- compatibility: Work with new paradox version 1.0.0
mlr3fselect 0.11.0
- BREAKING CHANGE: The
method parameter of
fselect(), fselect_nested() and
auto_fselector() is renamed to fselector. Only
FSelector objects are accepted now. Arguments to the
fselector cannot be passed with ... anymore.
- BREAKING CHANGE: The
fselect parameter of
FSelector is 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
- feat: Add callback
mlr3fselect.svm_rfe to run recursive
feature elimination on linear support vector machines.
- refactor: The importance scores in
FSelectorRFE are now
aggregated by rank instead of averaging them.
- feat: Add
FSelectorRFECV optimizer to run recursive
feature elimination with cross-validation.
- refactor:
FSelectorRFE works without
store_models = TRUE now.
- feat: The
as.data.table.ArchiveBatchFSelect() function
additionally returns a character vector of selected features for each
row.
- refactor: Add
callbacks argument to fsi()
function.
mlr3fselect 0.9.1
- refactor: Remove internal use of
mlr3pipelines.
- fix: Feature selection with measures that require the importance or
oob error works now.
mlr3fselect 0.9.0
- fix: Add
genalg to required packages of
FSelectorBatchGeneticSearch.
- 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
- refactor:
FSelectorRFE throws an error if the learner
does not support the $importance() method.
- refactor: The
AutoFSelector stores the instance and
benchmark result if store_models = TRUE.
- refactor: The
AutoFSelector stores the instance if
store_benchmark_result = TRUE.
- feat: Add missing parameters from
AutoFSelector to
auto_fselect().
- feat: Add
fsi() function to create a
FSelectInstanceBatchSingleCrit or
FSelectInstanceBatchMultiCrit.
- refactor: Remove
unnest option from
as.data.table.ArchiveBatchFSelect() function.
mlr3fselect 0.7.2
- docs: Re-generate rd files with valid html.
mlr3fselect 0.7.1
- feat:
FSelector objects have the field $id
now.
mlr3fselect 0.7.0
- feat: Allow to pass
FSelector objects as
method in fselect() and
auto_fselector().
- feat: Added
$label to FSelectors.
- docs: New examples with
fselect() function.
- feat:
$help() method which opens manual page of a
FSelector.
- feat: Added a
as.data.table.DictionaryFSelector
function.
- feat: Added
min_features parameter to
FSelectorBatchSequential.
mlr3fselect 0.6.1
- Add
store_models flag to fselect().
- Remove
store_x_domain flag.
mlr3fselect 0.6.0
- Adds
AutoFSelector$base_learner() method to extract the
base learner from nested learner objects.
- Adds
fselect(), auto_fselector() and
fselect_nested() sugar functions.
- Adds
extract_inner_fselect_results() and
extract_inner_fselect_archives() helper function to extract
inner feature selection results and archives.
mlr3fselect 0.5.1
- Remove
x_domain column from archive.
mlr3fselect 0.5.0
FSelectorRFE stores importance values of each evaluated
feature set in archive.
ArchiveBatchFSelect$data is a public field now.
mlr3fselect 0.4.1
- Fix bug in
AutoFSelector$predict()
mlr3fselect 0.4.0
- Compact in-memory representation of R6 objects to save space when
saving mlr3 objects via saveRDS(), serialize() etc.
FSelectorRFE supports 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).
AutoFSelect is renamed to
AutoFSelector.
- To retrieve the inner feature selection results in nested
resampling,
as.data.table(rr)$learner[[1]]$fselect_result
must be used now.
- Option to control
store_benchmark_result,
store_models and check_values in
AutoFSelector. store_fselect_instance must be
set as a parameter during initialization.
- Adds
FSelectorBatchGeneticSearch.
- Fixes
check_values flag in
FSelectInstanceBatchSingleCrit and
FSelectInstanceBatchMultiCrit.
- Removed dependency on orphaned package
bibtex.
PipeOpSelect is internally used for task
subsetting.
mlr3fselect 0.3.0
Archive is ArchiveBatchFSelect now 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.
mlr3fselect 0.2.1
- Warning message if external package for feature selection is not
installed.
mlr3fselect 0.2.0