as_prediction_regr()to reverse the operation of
learner$predict_newdata()is not mandatory anymore (#563).
Task$data()defaults to return only active rows and columns, instead of asserting to only return rows and columns. As a result, the
$data()method can now also be used to query inactive rows and cols from the
uriwhich is intended to point to external resources, e.g. images on the file system.
set_threads()to control the number of threads during calls to external packages. All objects will be migrated to have threading disabled in their defaults to avoid conflicting parallelization techniques (#605).
mlr3.debug: avoid calls to
benchmark()to improve the readability of tracebacks.
mlr3.allow_utf8_names: allow non-ascii characters in column names in tasks.
BenchmarkResultnow optionally remove the DataBackend of the Tasks in order to reduce file size and memory footprint after serialization. To remove the backends from the containers, set
benchmark(), respectively. Note that this behaviour will eventually will be the default for future releases.
Learner$predict_newdata()now have row ids starting from 1 instead auto incrementing row ids of the training task.
as.data.table.DictionaryTasksnow returns an additional column
BenchmarkResult$score()to allow to work with failing learners more conveniently.
$set_row_rolesas a replacement for the deprecated and less flexible
friedman.test.BenchmarkResult()in favor of the new
MeasureOOBErrornow has set property
"featureless"to tag learners which can operate on featureless tasks.
predict_setsfor returned [Prediction] objects.
BenchmarkResultfor resamplings with a single iteration (#551).
BenchmarkResultnow share a common interface to store the experiment results. Manual construction is still possible with helper function
classif.prauc(area under precision-recall curve).
BenchmarkResultare now de-duplicated for an optimized serialization.
breast_cancer: all factor features are now correctly stored as ordered factors.
ResamplingLOOfor leave-one-out resampling.
ResamplingBootstrapin combination with grouping (#514).
future.applyis now imported (instead of suggested). This is necessary to ensure reproducibility: This way exactly the same result is calculated, independent of the parallel backend.
classif.bbrier(binary Brier score) and
classif.mbrier(multi-class Brier score).
Switched to new
roxygen2 documentation format for R6 classes.
Row ids now must be numeric. It was previously allowed to have character row ids, but this lead to confusion and unnecessary code bloat. Row identifiers (e.g., to be used in plots) can still be part of the task, with row role
Row names can now be queried with
DataBackendMatrix now supports to store an optional (numeric) dense part.
Added new method
$filter() to filter
ResampleResults to a subset of iterations.
character() -> object converters.
Empty test sets are now handled separately by learners (#421). An empty prediction object is returned for all learners.
The internal train and predict function of
Learner now should be implemented as private method: instead of public methods
predict_internal, private methods
.predict are now encouraged.
It is now encouraged to move some internal methods from public to private:
Learner$train_internalshould now be private method
Learner$predict_internalshould now be private method
Measure$score_internalshould now be private method
$.score. The public methods will be deprecated in a future release.
Removed arguments from the constructor of measures
classif.costs. These can be set directly by
Learners returned by
BenchmarkResult$learners are reset to encourage the safer alternative
BenchmarkResult$score() to access trained models.
Fix ordering of levels in
PredictionClassif$set_threshold() (triggered an assertion).
Switched from package
Metrics to package
Measures can now calculate all scores using micro or macro averaging (#400).
Measures can now be configured to return a customizable performance score (instead of
NA) in case the score cannot be calculated.
Character columns are now treated differently from factor columns. In the long term,
character() columns are supposed to store text.
Fixed a bug triggered by integer grouping variables in
benchmark_grid() now accepts instantiated resamplings under certain conditions.
Task$set_row_roles() are now deprecated. Instead it is recommended for now to work with the lists
Learner$predict_newdata() now works without argument
task if the learner has been fitted with
Names of column roles have been unified (
"groups" have been renamed).
Stratification is now controlled via a task column role (was a parameter of class
Added a S3
predict() method for class
Learner to increase interoperability with other packages.
Many objects now come with a
$help() which opens the respective manual page.
It is now possible to predict and score results on the training set or on both training and test set. Learners can be instructed to predict on multiple sets by setting
"test"). Measures operate on all sets specified in their field
ResampleResult$predictions() are now methods instead of fields, and allow to extract predictions for different predict sets.
ResampleResult$performance() has been renamed to
ResampleResult$score() for consistency.
BenchmarkResult$performance() has been renamed to
BenchmarkResult$score() for consistency.
Changed API for (internal) constructors accepting
paradox::ParamSet(). Instead of passing the initial values separately, the initial values must now be set directly in the
Deprecated support of automatically creating objects from strings. Instead,
mlr3 provides the following helper functions intended to ease the creation of objects stored in dictionaries:
BenchmarkResult now ensures that the stored
ResampleResults are in a persistent order. Thus,
ResampleResults can now be addressed by their position instead of their hash.
New S3 generic
Removed the control object