mlr3pipelines 0.9.0
CRAN release: 2025-07-31
- Breaking change: Removed initialization of
PipeOpImputeConstant’sconstanthyperparameter since it was incompatible with other defaults and would lead to not recommended usage (creating an empty level). - Removed compatibility for old
paradoxversions pre-1.0.0. - Added
empty_level_controlargument toPipeOpImputeallowing control over edge cases forfactor/orderedcolumns. - Set new construction argument
empty_level_controlto"param"forPipeOpImputeOORand to"always"forPipeOpImputeConstant. - Untrained
PipeOps that takeNULLas input during training now automatically perform training during prediction. -
PipeOpImputeConstant,PipeOpImputeMode,PipeOpImputeOOR, andPipeOpImputeLearnercan now handlefactorororderedfeatures with zero levels. -
PipeOpImputeConstantnow gives a more informative error message ifcheck_levelsisTRUEand a new level would be created through imputation. - Fix:
PipeOpImputeOORnow imputes".MISSING"forfactor/orderedfeatures with onlyNAs instead of sampling from the feature’s levels. - Fix:
PipeOpImputeLearnerno longer adds"factor"or"ordered"levels for these feature types arbitrarily and instead updates levels correctly in certain edge-cases. - Fixed the error message for unexpected Multiplicities in the input and output type checking during
PipeOps training and prediction. - Fixed a grammatical error in
PipeOp’s error message wrapper: now correctly says “This happened in …”.
mlr3pipelines 0.8.0
CRAN release: 2025-06-17
- Added missing error for predicting with untrained
PipeOps /Graphs. - Fix: Corrected typo in the hyperparameter name
use_parallelofPipeOpVtreat. - Fix: Do not overwrite initial hyperparameter settings of
bbotk::OptimizerBatchNLoptrinLearnerClassifAvg/LearnerRegrAvg’s internaloptimize_weights_learneravgfunction. - Added new convenience function
preproc()for easier training of or prediction withPipeOps orGraphs. - Fix:
PipeOpVtreat,PipeOpEncodeImpact, andPipeOpEncodeLmernow accept the more preciseTaskSupervisedinstead ofTaskas input for training and prediction. - Docs: Added missing documentation for the
task_typeof the input and output channels ofPipeOps that inherit fromPipeOpTaskPreprocand set a non-defaulttask_type. - Fix:
PipeOpEncodeLmer,PipeOpADAS,PipeOpBLSmote,PipeOpSmote, andPipeOpSmoteNCno longer throw an error in case of empty target levels during training. - Fix:
PipeOpClassBalancingnow handles unseen target levels by ignoring them during upsampling instead of producingNAs.
mlr3pipelines 0.7.2
CRAN release: 2025-03-07
- New parameter
no_collapse_above_absoluteforPipeOpCollapseFactors/po("collapse_factors"). - Fix:
PipeOpCollapseFactorsnow correctly collapses levels of ordered factors. - Fix:
LearnerClassifAvgandLearnerRegrAvghyperparameters get the"required"tag. - New parameter
use_groups(defaultTRUE) forPipeOpSubsamplingto respect grouping (changed default behaviour for grouped data) - New parameter
new_role_directforPipeOpColRoles/po("colroles")to change column roles by role instead of by column. - Dictionary sugar functions
po()/pos()/ppl()/ppls()now make suggestions for entries in bothmlr_pipeopsas well asmlr_graphswhen an object by the given name could not be found in the respective dictionary. - New PipeOp
PipeOpDecode/po("decode")to reverse one-hot or treatment encoding. - Fix: Columns that are
featureand something else no longer lose the other column role during training or predicting ofPipeOps inheriting fromPipeOpTaskPreproc. - Fix: Made tests for
PipeOpBLSmotedeterministic. - Fix: Corrected hash calculation for
PipeOpFilter. - New PipeOps
PipeOpEncodePLQuantilesandPipeOpEncodePLTreethat implement piecewise linear encoding with two different binning methods. - Compatibility with new
R6release. - Docs: Performed cleanup and standardization.
- Docs: Performed cleanup of reference index page on website.
- Docs: Fixed parsing of examples on website for
PipeOpNMFandPipeOpLearnerPICVPlus. - Fix:
PipeOpTargetMutateandPipeOpTargetTrafoScaleRangeno longer drop unseen factor levels of features or targets during train and predict. - Simplified parameter checks and added internal type checking for
PipeOpTargetMutate.
mlr3pipelines 0.7.1
CRAN release: 2024-11-14
- Compatibility fix for upcoming
mlr3 - New down-sampling PipeOps for inbalanced data:
PipeOpTomek/po("tomek")andPipeOpNearmiss/po("nearmiss") - New PipeOp
PipeOpLearnerPICVPlus / po("learner_pi_cvplus") - New PipeOp for Quantile Regression
PipeOpLearnerQuantiles/po(learner_quantiles) -
GraphLearnerhas new active bindings/methods as shortcuts for active bindings/methods of the underlyingGraph:$pipeops,$edges,$pipeops_param_set, and$pipeops_param_set_valuesas well as$ids()and$plot().
mlr3pipelines 0.7.0
CRAN release: 2024-09-24
- New PipeOp
PipeOpRowApply/po("rowapply") - Empty
PipeOpIDs now explicitly forbidden. - Bugfix:
Graph$tran()/Graph$predict()withsingle_input = FALSEnow correctly handlesPipeOps with multiple inputs. -
GraphLearner$base_learner()now works withPipeOpBranch, and is generally more robust. -
GraphLearnernow supports$importance,$selected_features(),$oob_error(), and$loglik(). These are computed from the underlyingLearner. -
GraphLearner$impute_selected_featuresoption added:$selected_features()is reported even if the underlying base learner does not report it; in this case, the full feature set as seen by that learner is returned. -
GraphLearner$predict_typehandling more robust now. -
PipeOpThresholdandPipeOpTuneThresholdnow have the$predict_type"prob". They can be set to"response", in which case the probability predictions are discarded, potentially saving memory. - Bugfix for handling multiplicities in PipeOps with vararg channels.
- Bugfix:
PipeOpImputeOORnow retains the.MISSINGlevel in factors during prediction that were imputed during training, but had no missing values during prediction. -
as_data_table(po())now works even when somePipeOps can not be constructed. For thesePipeOps,NAis reported in most columns. - Compatibility with upcoming
mlr3release. - New PipeOps for handling inbalanced data:
PipeOpADAS/po("adas"),PipeOpBLSmote/po("blsmote")andPipeOpSmoteNC/po("smotenc")
mlr3pipelines 0.6.0
CRAN release: 2024-07-01
- Compatibility with new
bbotkrelease. - Added marshaling support to
GraphLearner - Support internal tuning and validation
mlr3pipelines 0.5.2
CRAN release: 2024-04-23
- Added new
ppl("convert_types"). - Minor documentation fixes.
- Test helpers are now available in
inst/. These are considered experimental and unstable.
mlr3pipelines 0.5.1
CRAN release: 2024-03-26
- Changed the ID of
PipeOpFeatureUnionused inppl("robustify")andppl("stacking"). -
pipeline_bagging()gets thereplaceargument (old behaviourFALSEby default). - Feature: The
$add_pipeop()method got an argumentclone(old behaviourTRUEby default). - Bugfix:
PipeOpFeatureUnionin some rare cases dropped variables called"x". - Compatibility with upcoming paradox release.
mlr3pipelines 0.5.0-2
CRAN release: 2023-12-08
- Avoid unnecessarily large serializations of
ppl("robustify")pipelines. - Made tests and examples compatible with mlr3 update.
mlr3pipelines 0.5.0-1
CRAN release: 2023-05-22
- Bugfix:
PipeOpTuneThresholdwas not overloading the correct.trainand.predictfunctions.
mlr3pipelines 0.5.0
CRAN release: 2023-05-22
- New way of computing
$hashand$phashforGraphLearnerand allPipeOps. This could break users that inherit fromPipeOpand make use of$hashin the future (but is ultimately in their interest!). - Neater plots.
- Bugfix:
phashofGraphLearnernow considers content of Graph, not only IDs. - One vignette removed for version 0.1.3 added back here. Welcome home!
- Bugfix: Make Graph work that have PipeOps with more than one output, where one output was linked to multiple inputs.
mlr3pipelines 0.4.2
CRAN release: 2022-09-20
- Documentation: Clarified
PipeOpHistBinoperation. - Documentation: Fixed
PipeOpPCAdocumentation ofcenterdefault. - Added
$labelactive binding, setting it to thehelp()-page title by default. - Made tests compatible with upcoming mlr3misc update.
mlr3pipelines 0.4.1
CRAN release: 2022-05-15
-
$help()function for all PipeOps as well asGraph,GraphLearnerand all Learners. -
GraphLearnercan be created without cloningGraph(for internal use). -
predict.Graphthrows helpful error when it cannot create a fittingTask. -
PipeOpLearnerpackagesslot is set to theLearner’spackages. - Bugfix:
PipeOptrain()andpredict()report correct channel name when output has wrong type. - Bugfix: More accurate type inference when constructing Graphs.
- Stability fix for interaction with packages such as mlr3spatiotempcv that extend existing Task types.
mlr3pipelines 0.4.0
CRAN release: 2021-11-15
- New operator
%>>!%that modifies Graphs in-place. - New methods
chain_graphs(),concat_graphs(),Graph$chain()as alternatives for%>>%and%>>!%. - New methods
pos()andppls()which create lists of PipeOps/Graphs and can be seen as “plural” forms ofpo()andppl(). -
po()S3-method forPipeOpclass that clones a PipeOp object and optionally modifies its attributes. -
Graph$add_pipeop()now clones the PipeOp being added. - Documentation: Clarified documentation about cloning of input arguments in several places.
- Performance enhancements for Graph concatenation.
- More informative error outputs.
- New attribute
graph_modelinGraphLearnerclass, which gets the trained Graph. -
as_learner()S3-method forPipeOpclass that wraps aPipeOpin aGraphand turns that into aLearner. - Changed PipeOps:
-
PipeOpHistBin: renamedbinsParam tobreaks -
PipeOpImputeHist: fix handling of integer features spanning the entire represented integer range -
PipeOpImputeOOR: fix handling of integer features spanning the entire represented integer range -
PipeOpProxy: Avoid unnecessary clone -
PipeOpScale: Performance improvement
-
mlr3pipelines 0.3.6
CRAN release: 2021-09-07
- Bugfix: Make empty Multiplicities work (unless they are nested)
- Fixed: Compatibility with upcoming
bbotkversion. - New
mlr_graphs:pipeline_stacking - Added JMLR-Citation
mlr3pipelines 0.3.5
CRAN release: 2021-07-06
- Changed PipeOp:
PipeOpFiltergets additionalfilter.permutedhyperparameter. - Bugfix: Make
add_edgeof Graphs work with Multiplicities. - Bugfix: Make
GraphLearnerhash depend onid. - Documentation: Clarify documentation of
LearnerAvg. - Internals: Using more idiomatic internal helper functions.
- Compatibility with upcoming
mlr3version.
mlr3pipelines 0.3.4
CRAN release: 2021-03-05
- Stability: PipeOps don’t crash when they have python/reticulate hyperparameter values.
- Documentation: Titles of PipeOp documentation articles reworked.
mlr3pipelines 0.3.3
CRAN release: 2021-02-09
- Bugfix: fix rare issue in randomized test
- Compatibility with
bbotk0.3.0
mlr3pipelines 0.3.2
CRAN release: 2020-12-17
- Bugfix: Make
as.data.table(mlr_pipeops)work withparadox0.6 - Changed PipeOps:
-
PipeOpColApply: now allows for an applicator function with multiple columns as a return value; also inherits fromPipeOpTaskPreprocSimplenow
-
mlr3pipelines 0.3.1
CRAN release: 2020-11-16
- Changed PipeOps:
-
PipeOpMissIndnow also allows for setting type = integer -
PipeOpNMF: now exposes all parameters previously in.options
-
- Changed
mlr_graphs:-
pipeline_baggingnow uses multiplicities internally - fix how
pipeline_robustifydetermines the type of newly created columns when usingPipeOpMissInd -
PipeOpFeatureUnion: Fixed a minor bug when checking for duplicates
-
- added an autotest for ParamSets of PipeOps:
expect_valid_pipeop_param_set - More informative error message when PipeOp input value has wrong type
- Fix automatic detection of R6 type hierarchy
- Performance improvements for
GraphLearner -
GraphLearnerallows customid - Use parallel tests
- Removed bibtex dependency
mlr3pipelines 0.3.0
CRAN release: 2020-09-13
- compatibility with
mlr30.6 -
NULLinput channels accept any kind of input -
print()method of Graphs now also allows for printing a DOT representation on the console -
stateof PipeOps is now reset toNULLwhen training fails - implemented
as_learner.PipeOp -
LearnerClassifAvg,LearnerRegrAvgusebbotknow - Changed PPLs:
- fix how
ppl_robustifydetects whether a learner can handle factors
- fix how
- Changed PipeOps:
-
PipeOpTextVectorizercan now return an “integer sequence representation”.
-
- New PipeOps:
PipeOpNMFPipeOpColRolesPipeOpVtreat
- various bugfixes
mlr3pipelines 0.2.1
CRAN release: 2020-08-18
- New feature: Multiplicities: implicit repetition of operations
- new
mlr_graphs:pipeline_baggingpipeline_branchpipeline_greplicatepipeline_robustifypipeline_targettrafopipeline_ovr
- New PipeOps:
-
PipeOpOVRSplit,PipeOpOVRUnite PipeOpReplicate-
PipeOpMultiplicityExply,PipeOpMultiplicityImply -
PipeOpTargetTrafo,PipeOpTargetInvert PipeOpTargetMutatePipeOpTargetTrafoScaleRangePipeOpProxyPipeOpDateFeaturesPipeOpImputeConstantPipeOpImputeLearnerPipeOpModePipeOpRandomResponsePipeOpRenameColumnsPipeOpTextVectorizerPipeOpThreshold
-
- Renamed PipeOps:
-
PipeOpImputeNewlvl–>PipeOpImputeOOR(with additional functionality for continuous values)
-
- Changed PipeOps:
-
PipeOpFeatureUnion: Bugfix: avoid silently overwriting features when names clash -
PipeOpHistBin: Bugfix: handle test set data out of training set range -
PipeOpLearnerCV: Allow returning trainingset prediction duringtrain() -
PipeOpMutate: Allow referencing newly created columns -
PipeOpScale: Allow robust scaling -
PipeOpLearner,PipeOpLearnerCV:learner_modelsfor access to learner with model slot
-
- New Selectors:
selector_missingselector_cardinality_greater_than
- NULL is neutral element of
%>>% -
PipeOpTaskPreprocnow hasfeature_typesslot -
PipeOpTaskPreproc(Simple)internal API changed: use.train_task(),.predict_task(),.train_dt(),.predict_dt(),.select_cols(),.get_state(),.transform(),.get_state_dt(),.transform_dt()instead of the old methods without dot prefix - PipeOp now has tags slot
- PipeOp internal API changed: use
.train(),.predict()instead oftrain_internal(),predict_internal() -
Graphnew methodupdate_ids() -
Graphmethodstrain(single_input = FALSE)andpredict(single_input = FALSE)now handle vararg channels correctly. - Obsoleted
greplicate(); usepipeline_greplicate/ppl("greplicate")instead. -
po()now automatically convertsSelectortoPipeOpSelect -
po()prints availablemlr_pipeopsdictionary content -
mlr_graphsdictionary of useful Graphs, with short form accessorppl() - Work with new
mlr3version 0.4.0
mlr3pipelines 0.1.3
CRAN release: 2020-04-06
- small test fix for R 4.0 (necessary for
stringsAsFactorsoption default change in 3.6 -> 4.0) -
predict()generic for Graph - Migrated last vignette to “mlr3 Book”
- Compact in-memory representation of R6 objects to save space when saving objects via
saveRDS(),serialize()etc.
mlr3pipelines 0.1.2
CRAN release: 2019-12-10
- Work with new
mlr3version 0.1.5 (handling of character columns changed)
