mlr3pipelines 0.9.0
- Breaking change: Removed initialization of
PipeOpImputeConstant’s constant hyperparameter
since it was incompatible with other defaults and would lead to not
recommended usage (creating an empty level).
- Removed compatibility for old
paradox versions
pre-1.0.0.
- Added
empty_level_control argument to
PipeOpImpute allowing control over edge cases for
factor/ordered columns.
- Set new construction argument
empty_level_control to
"param" for PipeOpImputeOOR and to
"always" for PipeOpImputeConstant.
- Untrained
PipeOps that take NULL as input
during training now automatically perform training during
prediction.
PipeOpImputeConstant, PipeOpImputeMode,
PipeOpImputeOOR, and PipeOpImputeLearner can
now handle factor or ordered features with
zero levels.
PipeOpImputeConstant now gives a more informative error
message if check_levels is TRUE and a new
level would be created through imputation.
- Fix:
PipeOpImputeOOR now imputes
".MISSING" for factor/ordered
features with only NAs instead of sampling from the
feature’s levels.
- Fix:
PipeOpImputeLearner no 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
- Added missing error for predicting with untrained
PipeOps / Graphs.
- Fix: Corrected typo in the hyperparameter name
use_parallel of PipeOpVtreat.
- Fix: Do not overwrite initial hyperparameter settings of
bbotk::OptimizerBatchNLoptr in
LearnerClassifAvg / LearnerRegrAvg’s internal
optimize_weights_learneravg function.
- Added new convenience function
preproc() for easier
training of or prediction with PipeOps or
Graphs.
- Fix:
PipeOpVtreat, PipeOpEncodeImpact, and
PipeOpEncodeLmer now accept the more precise
TaskSupervised instead of Task as input for
training and prediction.
- Docs: Added missing documentation for the
task_type of
the input and output channels of PipeOps that inherit from
PipeOpTaskPreproc and set a non-default
task_type.
- Fix:
PipeOpEncodeLmer, PipeOpADAS,
PipeOpBLSmote, PipeOpSmote, and
PipeOpSmoteNC no longer throw an error in case of empty
target levels during training.
- Fix:
PipeOpClassBalancing now handles unseen target
levels by ignoring them during upsampling instead of producing
NAs.
mlr3pipelines 0.7.2
- New parameter
no_collapse_above_absolute for
PipeOpCollapseFactors /
po("collapse_factors").
- Fix:
PipeOpCollapseFactors now correctly collapses
levels of ordered factors.
- Fix:
LearnerClassifAvg and LearnerRegrAvg
hyperparameters get the "required" tag.
- New parameter
use_groups (default TRUE)
for PipeOpSubsampling to respect grouping (changed default
behaviour for grouped data)
- New parameter
new_role_direct for
PipeOpColRoles / 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 both mlr_pipeops as well as
mlr_graphs when 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
feature and something else no
longer lose the other column role during training or predicting of
PipeOps inheriting from
PipeOpTaskPreproc.
- Fix: Made tests for
PipeOpBLSmote deterministic.
- Fix: Corrected hash calculation for
PipeOpFilter.
- New PipeOps
PipeOpEncodePLQuantiles and
PipeOpEncodePLTree that implement piecewise linear encoding
with two different binning methods.
- Compatibility with new
R6 release.
- Docs: Performed cleanup and standardization.
- Docs: Performed cleanup of reference index page on website.
- Docs: Fixed parsing of examples on website for
PipeOpNMF and PipeOpLearnerPICVPlus.
- Fix:
PipeOpTargetMutate and
PipeOpTargetTrafoScaleRange no 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
- Compatibility fix for upcoming
mlr3
- New down-sampling PipeOps for inbalanced data:
PipeOpTomek / po("tomek") and
PipeOpNearmiss / po("nearmiss")
- New PipeOp
PipeOpLearnerPICVPlus / po("learner_pi_cvplus")
- New PipeOp for Quantile Regression
PipeOpLearnerQuantiles /
po(learner_quantiles)
GraphLearner has new active bindings/methods as
shortcuts for active bindings/methods of the underlying
Graph: $pipeops, $edges,
$pipeops_param_set, and
$pipeops_param_set_values as well as $ids()
and $plot().
mlr3pipelines 0.7.0
- New PipeOp
PipeOpRowApply /
po("rowapply")
- Empty
PipeOp IDs now explicitly forbidden.
- Bugfix:
Graph$tran() / Graph$predict()
with single_input = FALSE now correctly handles
PipeOps with multiple inputs.
GraphLearner$base_learner() now works with
PipeOpBranch, and is generally more robust.
GraphLearner now supports $importance,
$selected_features(), $oob_error(), and
$loglik(). These are computed from the underlying
Learner.
GraphLearner$impute_selected_features option 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_type handling more robust
now.
PipeOpThreshold and PipeOpTuneThreshold
now 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:
PipeOpImputeOOR now retains the
.MISSING level in factors during prediction that were
imputed during training, but had no missing values during
prediction.
as_data_table(po()) now works even when some
PipeOps can not be constructed. For these
PipeOps, NA is reported in most columns.
- Compatibility with upcoming
mlr3 release.
- New PipeOps for handling inbalanced data:
PipeOpADAS /
po("adas"), PipeOpBLSmote /
po("blsmote") and PipeOpSmoteNC /
po("smotenc")
mlr3pipelines 0.6.0
- Compatibility with new
bbotk release.
- Added marshaling support to
GraphLearner
- Support internal tuning and validation
mlr3pipelines 0.5.2
- 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
- Changed the ID of
PipeOpFeatureUnion used in
ppl("robustify") and ppl("stacking").
pipeline_bagging() gets the replace
argument (old behaviour FALSE by default).
- Feature: The
$add_pipeop() method got an argument
clone (old behaviour TRUE by default).
- Bugfix:
PipeOpFeatureUnion in some rare cases dropped
variables called "x".
- Compatibility with upcoming paradox release.
mlr3pipelines 0.5.0-2
- Avoid unnecessarily large serializations of
ppl("robustify") pipelines.
- Made tests and examples compatible with mlr3 update.
mlr3pipelines 0.5.0-1
- Bugfix:
PipeOpTuneThreshold was not overloading the
correct .train and .predict functions.
mlr3pipelines 0.5.0
- New way of computing
$hash and $phash for
GraphLearner and all PipeOps. This could break
users that inherit from PipeOp and make use of
$hash in the future (but is ultimately in their
interest!).
- Neater plots.
- Bugfix:
phash of GraphLearner now
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.3
po(), pos() can now construct
PipeOps with ID postfix _<number> to
avoid ID clashes.
GraphLearner now has method
$base_learner() that returns the underlying
Learner, if it can be found by a simple heuristic.
- Fix S3 function signatures
mlr3pipelines 0.4.2
- Documentation: Clarified
PipeOpHistBin operation.
- Documentation: Fixed
PipeOpPCA documentation of
center default.
- Added
$label active binding, setting it to the
help()-page title by default.
- Made tests compatible with upcoming mlr3misc update.
mlr3pipelines 0.4.1
$help() function for all PipeOps as well as
Graph, GraphLearner and all Learners.
GraphLearner can be created without cloning
Graph (for internal use).
predict.Graph throws helpful error when it cannot
create a fitting Task.
PipeOpLearner packages slot is set to the
Learner’s packages.
- Bugfix:
PipeOp train() and
predict() 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
- New operator
%>>!% that modifies Graphs
in-place.
- New methods
chain_graphs(),
concat_graphs(), Graph$chain() as alternatives
for %>>% and %>>!%.
- New methods
pos() and ppls() which create
lists of PipeOps/Graphs and can be seen as “plural” forms of
po() and ppl().
po() S3-method for PipeOp class 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_model in GraphLearner
class, which gets the trained Graph.
as_learner() S3-method for PipeOp class
that wraps a PipeOp in a Graph and turns that
into a Learner.
- Changed PipeOps:
PipeOpHistBin: renamed bins Param to
breaks
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-1
- Fix numerics problem in tests
mlr3pipelines 0.3.6
- Bugfix: Make empty Multiplicities work (unless they are nested)
- Fixed: Compatibility with upcoming
bbotk version.
- New
mlr_graphs: pipeline_stacking
- Added JMLR-Citation
mlr3pipelines 0.3.5-1
- Fixed: Compatibility with upcoming
mlr3 version.
mlr3pipelines 0.3.5
- Changed PipeOp:
PipeOpFilter gets additional
filter.permuted hyperparameter.
- Bugfix: Make
add_edge of Graphs work with
Multiplicities.
- Bugfix: Make
GraphLearner hash depend on
id.
- Documentation: Clarify documentation of
LearnerAvg.
- Internals: Using more idiomatic internal helper functions.
- Compatibility with upcoming
mlr3 version.
mlr3pipelines 0.3.4
- Stability: PipeOps don’t crash when they have python/reticulate
hyperparameter values.
- Documentation: Titles of PipeOp documentation articles
reworked.
mlr3pipelines 0.3.3
- Bugfix: fix rare issue in randomized test
- Compatibility with
bbotk 0.3.0
mlr3pipelines 0.3.2
- Bugfix: Make
as.data.table(mlr_pipeops) work with
paradox 0.6
- Changed PipeOps:
PipeOpColApply: now allows for an applicator function
with multiple columns as a return value; also inherits from
PipeOpTaskPreprocSimple now
mlr3pipelines 0.3.1
- Changed PipeOps:
PipeOpMissInd now also allows for setting type =
integer
PipeOpNMF: now exposes all parameters previously in
.options
- Changed
mlr_graphs:
pipeline_bagging now uses multiplicities
internally
- fix how
pipeline_robustify determines the type of newly
created columns when using PipeOpMissInd
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
GraphLearner allows custom id
- Use parallel tests
- Removed bibtex dependency
mlr3pipelines 0.3.0
- compatibility with
mlr3 0.6
NULL input channels accept any kind of input
print() method of Graphs now also allows for printing a
DOT representation on the console
state of PipeOps is now reset to NULL when
training fails
- implemented
as_learner.PipeOp
LearnerClassifAvg, LearnerRegrAvg use
bbotk now
- Changed PPLs:
- fix how
ppl_robustify detects whether a learner can
handle factors
- Changed PipeOps:
PipeOpTextVectorizer can now return an “integer
sequence representation”.
- New PipeOps:
PipeOpNMF
PipeOpColRoles
PipeOpVtreat
- various bugfixes
mlr3pipelines 0.2.1
- New feature: Multiplicities: implicit repetition of operations
- new
mlr_graphs:
pipeline_bagging
pipeline_branch
pipeline_greplicate
pipeline_robustify
pipeline_targettrafo
pipeline_ovr
- New PipeOps:
PipeOpOVRSplit, PipeOpOVRUnite
PipeOpReplicate
PipeOpMultiplicityExply,
PipeOpMultiplicityImply
PipeOpTargetTrafo, PipeOpTargetInvert
PipeOpTargetMutate
PipeOpTargetTrafoScaleRange
PipeOpProxy
PipeOpDateFeatures
PipeOpImputeConstant
PipeOpImputeLearner
PipeOpMode
PipeOpRandomResponse
PipeOpRenameColumns
PipeOpTextVectorizer
PipeOpThreshold
- 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
during train()
PipeOpMutate: Allow referencing newly created
columns
PipeOpScale: Allow robust scaling
PipeOpLearner, PipeOpLearnerCV:
learner_models for access to learner with model slot
- New Selectors:
selector_missing
selector_cardinality_greater_than
- NULL is neutral element of
%>>%
PipeOpTaskPreproc now has feature_types
slot
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 of train_internal(),
predict_internal()
Graph new method update_ids()
Graph methods train(single_input = FALSE)
and predict(single_input = FALSE) now handle vararg
channels correctly.
- Obsoleted
greplicate(); use
pipeline_greplicate / ppl("greplicate")
instead.
po() now automatically converts Selector
to PipeOpSelect
po() prints available mlr_pipeops
dictionary content
mlr_graphs dictionary of useful Graphs, with short form
accessor ppl()
- Work with new
mlr3 version 0.4.0
mlr3pipelines 0.1.3
- small test fix for R 4.0 (necessary for
stringsAsFactors option 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
- Work with new
mlr3 version 0.1.5 (handling of character
columns changed)
mlr3pipelines 0.1.1
- Better html graphics for linear Graphs
- New PipeOps:
- Changed PipeOp Behaviour:
mlr3pipelines 0.1.0