mlr3 0.11.0 2021-03-05

  • Added a method.
  • Renamed column "row_id" to "row_ids" in the methods for PredictionClassif and PredictionRegr (#547).
  • Added converters as_prediction_classif() and as_prediction_regr() to reverse the operation of and
  • Specifying a weight column during 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 DataBackend.
  • New (experimental) column role uri which is intended to point to external resources, e.g. images on the file system.
  • New helper 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).
  • New option mlr3.debug: avoid calls to future in resample() and benchmark() to improve the readability of tracebacks.
  • New experimental option mlr3.allow_utf8_names: allow non-ascii characters in column names in tasks.

mlr3 0.10.0 2021-01-21

  • Result containers ResampleResult and BenchmarkResult now 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 store_backends to FALSE in resample() or benchmark(), respectively. Note that this behaviour will eventually will be the default for future releases.
  • Prediction objects generated by Learner$predict_newdata() now have row ids starting from 1 instead auto incrementing row ids of the training task.
  • now returns an additional column properties.
  • Added flag conditions to ResampleResult$score() and BenchmarkResult$score() to allow to work with failing learners more conveniently.

mlr3 0.9.0 2020-12-06

  • New methods for Task: $set_col_roles and $set_row_roles as a replacement for the deprecated and less flexible $set_col_role and $set_row_role.
  • Learners can now have a timeout (#556).
  • Removed S3 method friedman.test.BenchmarkResult() in favor of the new mlr3benchmark package.

mlr3 0.8.0 2020-10-21

  • MeasureOOBError now has set property minimize to TRUE.
  • New learner property "featureless" to tag learners which can operate on featureless tasks.
  • Fixed [ResampleResult] ignoring argument predict_sets for returned [Prediction] objects.
  • Compability with new version of lgr.

mlr3 0.7.0 2020-10-07

  • Updated properties of featureless learners to apply it on all feature types (did not work on POSIXct columns).
  • Fixed measures being calculated as NaN for BenchmarkResult for resamplings with a single iteration (#551).
  • Fixed a bug where a broken heuristic disabled nested parallelization via package future (mlr3tuning#270).
  • ResampleResult and BenchmarkResult now share a common interface to store the experiment results. Manual construction is still possible with helper function as_result_data()
  • Fixed deep cloning of ResamplingCV and ResamplingRepeatedCV.
  • New measure classif.prauc (area under precision-recall curve).
  • Removed dependency on orphaned package bibtex.

mlr3 0.6.0 2020-09-13

  • Compact in-memory representation of R6 objects to save space when saving objects via saveRDS() or serialize().
  • Objects in containers like ResampleResult or BenchmarkResult are now de-duplicated for an optimized serialization.
  • Fixed data set breast_cancer: all factor features are now correctly stored as ordered factors.
  • Added a new utility function convert_task().

mlr3 0.5.0 2020-08-07

  • Added classification task breast_cancer
  • Added ResamplingLOO for leave-one-out resampling.
  • Regression now supports predict type "distr" using the distr6 package.
  • Fixed ResamplingBootstrap in combination with grouping (#514).
  • Fixed plot method of TaskGeneratorMoons.
  • Added hyperparameter keep_model to learners "classif.rpart" and "regr.rpart".

mlr3 0.4.0 2020-07-22

  • Added new task generators ("cassini", "circle", "simplex", "spirals", and "moons").
  • Columns in tasks generated by task generators have been renamed to be more consistent.
  • Added a plot() method for most task generators.
  • Corrected data in task german_credit (#514).

mlr3 0.3.0 2020-06-02

  • Package future.apply is now imported (instead of suggested). This is necessary to ensure reproducibility: This way exactly the same result is calculated, independent of the parallel backend.
  • Fixed a bug where prediction on new data for a task with blocking information raised an exception (#496).
  • New binding: Task$order.

mlr3 0.2.0 2020-04-17

  • Some handy cheat sheets can now be downloaded from the project homepage.
  • Added new measures classif.bbrier (binary Brier score) and classif.mbrier (multi-class Brier score).
  • Added new Resampling: ResamplingInsample.
  • Added base class for unsupervised tasks: TaskUnsupervised.

mlr3 0.1.8 2020-03-09

  • Added S3 methods to combine ResampleResults and BenchmarkResults with c().
  • Fixed a bug where automatic generation of row ids could lead to duplicated ids via Task$predict_newdata()/Task$rbind() (#423).

mlr3 0.1.7 2020-02-23

  • Switched to new roxygen2 documentation format for R6 classes.

  • resample() and benchmark() now support progress bars via the package progressr.

  • 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 "name".

  • Row names can now be queried with Task$row_names.

  • DataBackendMatrix now supports to store an optional (numeric) dense part.

  • Added new method $filter() to filter ResampleResults to a subset of iterations.

  • Removed deprecated 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 train_internal and predict_internal, private methods .train and .predict are now encouraged.

  • It is now encouraged to move some internal methods from public to private:

    • Learner$train_internal should now be private method $.train.
    • Learner$predict_internal should now be private method $.predict.
    • Measure$score_internal should now be private method $.score. The public methods will be deprecated in a future release.
  • Removed arguments from the constructor of measures classif.debug and classif.costs. These can be set directly by msr().

mlr3 0.1.6 2019-12-19

  • We have published an article about mlr3 in the Journal of Open Source Software: See citation("mlr3") for the citation info.

  • New method Learner$reset().

  • New method BenchmarkResult$filter().

  • 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).

mlr3 0.1.5 2019-12-10

  • Switched from package Metrics to package mlr3measures.

  • 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 Task (#396).

  • benchmark_grid() now accepts instantiated resamplings under certain conditions.

mlr3 0.1.4 2019-10-28

  • Task$set_col_roles() and Task$set_row_roles() are now deprecated. Instead it is recommended for now to work with the lists Task$col_roles and Task$row_roles directly.

  • Learner$predict_newdata() now works without argument task if the learner has been fitted with Learner$train() (#375).

  • Names of column roles have been unified ("weights", "label", "stratify" and "groups" have been renamed).

  • Replaced MeasureClassifF1 with MeasureClassifFScore and fixed a bug in the F1 performance calculation (#353). Thanks to @001ben for reporting.

  • Stratification is now controlled via a task column role (was a parameter of class Resampling before).

  • 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.

mlr3 0.1.3 2019-09-18

  • 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 predict_sets (default: "test"). Measures operate on all sets specified in their field predict_sets (default: "test").

  • ResampleResult$prediction and 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 ParamSet.

mlr3 0.1.2 2019-08-25

  • 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: tsk(), tgen(), lrn(), rsmp(), msr().

  • 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 field BenchmarkResult$n_resample_results.

  • New field BenchmarkResult$hashes.

  • New method Task$rename().

  • New S3 generic as_benchmark_result().

  • Renamed Generator to TaskGenerator.

  • Removed the control object mlr_control().

  • Removed ResampleResult$combine().

  • Removed BenchmarkResult$best().

mlr3 0.1.1 2019-07-25

  • Initial upload to CRAN.