mlr3pipelines 0.10.0-9000
- Fix: Made
FilterEnsembletests deterministic and more robust. - Fix: Made tests for
PipeOpLearnerCVdeterministic. - feat: All imputation PipeOps now support feature types
DateandPOSIXct. - Fix:
PipeOpTextVectorizernow uses coercion toTsparseMatrixinstead of deprecateddgTMatrixto avoidMatrixdeprecation warnings. - New method
$predict_newdata_fast()forGraphLearner. Note that currently this is only a thin wrapper around$predict_newdata()to maintain compatibility, but in the future it may get optimized to enable faster predictions on new data. - feat:
PipeOpRenameColumns’s hyperparameterrenamingcan now also take a function transforming old column names to new column names. - feat: Added new hyperparameters
filter_score_transform,result_score_transform, andaggregatortoFilterEnsemble. BREAKING CHANGE: The default behavior for handling NA scores in the aggregation has changed. Previously, NA scores were simply ignored and weights were not changed. Now,weighted.meanis used, which normalizes the weights for all non-NA scores.
mlr3pipelines 0.10.0
CRAN release: 2025-11-07
- Pretty-printing some info using the
clipackage now. - New PipeOp
PipeOpInfoprints or logs info about objects passing through. - New Pipeop
PipeOpIsomapimplements isomap embedding fromdimRed::embed - feat: allow dates in datefeatures pipe op and use data.table for date feature generation.
- feat:
PipeOpLearnerCVcan reuse the cross-validation models during prediction by averaging their outputs (resampling.predict_method = "cv_ensemble"). - feat:
PipeOpRegrAvggets newse_aggr,se_aggr_rho,prob_aggr, andprob_aggr_epshyperparameters and now allows different forms of prob / SE aggregation. - feat:
FilterEnsembleimplements Binder et al. (2020) Multi-Objective Hyperparameter Tuning and Feature Selection using Filter Ensembles - Fix:
PipeOpRemoveConstantsnow avoids integer overflow when evaluating relative tolerances for near-integer.maxdata. - Fix: Added support for internal validation tasks to
PipeOpFeatureUnion. - Fix: Added internal workaround for
PipeOpNMFattachingBiobase,BiocGenerics, andgenericsto the search path during training, prediction or when printing its$state. - Compatibility with new testthat version 3.3.0
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)
