- 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)
GraphLearner
has new active bindings/methods as shortcuts for active bindings/methods of the underlyingGraph
:$pipeops
,$edges
,$pipeops_param_set
, and$pipeops_param_set_values
as well as$ids()
and$plot()
.
- New PipeOp
PipeOpRowApply
/po("rowapply")
- Empty
PipeOp
IDs now explicitly forbidden. - Bugfix:
Graph$tran()
/Graph$predict()
withsingle_input = FALSE
now correctly handlesPipeOp
s with multiple inputs. GraphLearner$base_learner()
now works withPipeOpBranch
, and is generally more robust.GraphLearner
now supports$importance
,$selected_features()
,$oob_error()
, and$loglik()
. These are computed from the underlyingLearner
.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
andPipeOpTuneThreshold
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 somePipeOp
s can not be constructed. For thesePipeOp
s,NA
is reported in most columns.- Compatibility with upcoming
mlr3
release. - New PipeOps for handling inbalanced data:
PipeOpADAS
/po("adas")
,PipeOpBLSmote
/po("blsmote")
andPipeOpSmoteNC
/po("smotenc")
- Compatibility with new
bbotk
release. - Added marshaling support to
GraphLearner
- Support internal tuning and validation
- Added new
ppl("convert_types")
. - Minor documentation fixes.
- Test helpers are now available in
inst/
. These are considered experimental and unstable.
- Changed the ID of
PipeOpFeatureUnion
used inppl("robustify")
andppl("stacking")
. pipeline_bagging()
gets thereplace
argument (old behaviourFALSE
by default).- Feature: The
$add_pipeop()
method got an argumentclone
(old behaviourTRUE
by default). - Bugfix:
PipeOpFeatureUnion
in some rare cases dropped variables called"x"
. - Compatibility with upcoming paradox release.
- Avoid unnecessarily large serializations of
ppl("robustify")
pipelines. - Made tests and examples compatible with mlr3 update.
- Bugfix:
PipeOpTuneThreshold
was not overloading the correct.train
and.predict
functions.
- New way of computing
$hash
and$phash
forGraphLearner
and allPipeOp
s. This could break users that inherit fromPipeOp
and make use of$hash
in the future (but is ultimately in their interest!). - Neater plots.
- Bugfix:
phash
ofGraphLearner
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.
po()
,pos()
can now constructPipeOp
s with ID postfix_<number>
to avoid ID clashes.GraphLearner
now has method$base_learner()
that returns the underlyingLearner
, if it can be found by a simple heuristic.- Fix S3 function signatures
- Documentation: Clarified
PipeOpHistBin
operation. - Documentation: Fixed
PipeOpPCA
documentation ofcenter
default. - Added
$label
active binding, setting it to thehelp()
-page title by default. - Made tests compatible with upcoming mlr3misc update.
$help()
function for all PipeOps as well asGraph
,GraphLearner
and all Learners.GraphLearner
can be created without cloningGraph
(for internal use).predict.Graph
throws helpful error when it cannot create a fittingTask
.PipeOpLearner
packages
slot is set to theLearner
'spackages
.- Bugfix:
PipeOp
train()
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.
- 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 forPipeOp
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
inGraphLearner
class, which gets the trained Graph. as_learner()
S3-method forPipeOp
class that wraps aPipeOp
in aGraph
and turns that into aLearner
.- Changed PipeOps:
PipeOpHistBin
: renamedbins
Param tobreaks
PipeOpImputeHist
: fix handling of integer features spanning the entire represented integer rangePipeOpImputeOOR
: fix handling of integer features spanning the entire represented integer rangePipeOpProxy
: Avoid unnecessary clonePipeOpScale
: Performance improvement
- Fix numerics problem in tests
- Bugfix: Make empty Multiplicities work (unless they are nested)
- Fixed: Compatibility with upcoming
bbotk
version. - New
mlr_graphs
:pipeline_stacking
- Added JMLR-Citation
- Fixed: Compatibility with upcoming
mlr3
version.
- Changed PipeOp:
PipeOpFilter
gets additionalfilter.permuted
hyperparameter. - Bugfix: Make
add_edge
of Graphs work with Multiplicities. - Bugfix: Make
GraphLearner
hash depend onid
. - Documentation: Clarify documentation of
LearnerAvg
. - Internals: Using more idiomatic internal helper functions.
- Compatibility with upcoming
mlr3
version.
- Stability: PipeOps don't crash when they have python/reticulate hyperparameter values.
- Documentation: Titles of PipeOp documentation articles reworked.
- Bugfix: fix rare issue in randomized test
- Compatibility with
bbotk
0.3.0
- Bugfix: Make
as.data.table(mlr_pipeops)
work withparadox
0.6 - Changed PipeOps:
PipeOpColApply
: now allows for an applicator function with multiple columns as a return value; also inherits fromPipeOpTaskPreprocSimple
now
- Changed PipeOps:
PipeOpMissInd
now also allows for setting type = integerPipeOpNMF
: 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 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
GraphLearner
allows customid
- Use parallel tests
- Removed bibtex dependency
- compatibility with
mlr3
0.6 NULL
input channels accept any kind of inputprint()
method of Graphs now also allows for printing a DOT representation on the consolestate
of PipeOps is now reset toNULL
when training fails- implemented
as_learner.PipeOp
LearnerClassifAvg
,LearnerRegrAvg
usebbotk
now- Changed PPLs:
- fix how
ppl_robustify
detects whether a learner can handle factors
- fix how
- Changed PipeOps:
PipeOpTextVectorizer
can now return an "integer sequence representation".
- New PipeOps:
PipeOpNMF
PipeOpColRoles
PipeOpVtreat
- various bugfixes
- 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 clashPipeOpHistBin
: Bugfix: handle test set data out of training set rangePipeOpLearnerCV
: Allow returning trainingset prediction duringtrain()
PipeOpMutate
: Allow referencing newly created columnsPipeOpScale
: Allow robust scalingPipeOpLearner
,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 hasfeature_types
slotPipeOpTaskPreproc(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()
Graph
new methodupdate_ids()
Graph
methodstrain(single_input = FALSE)
andpredict(single_input = FALSE)
now handle vararg channels correctly.- Obsoleted
greplicate()
; usepipeline_greplicate
/ppl("greplicate")
instead. po()
now automatically convertsSelector
toPipeOpSelect
po()
prints availablemlr_pipeops
dictionary contentmlr_graphs
dictionary of useful Graphs, with short form accessorppl()
- Work with new
mlr3
version 0.4.0
- 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.
- Work with new
mlr3
version 0.1.5 (handling of character columns changed)
- Better html graphics for linear Graphs
- New PipeOps:
PipeOpEncodeImpact
- Changed PipeOp Behaviour:
PipeOpEncode
: handle NAs
- Initial upload to CRAN.