R/mlr_graphs_elements.R
mlr_graphs_targettrafo.Rd
Wraps a Graph
that transforms a target during training and inverts the transformation
during prediction. This is done as follows:
Specify a transformation and inversion function using any subclass of PipeOpTargetTrafo
, defaults to
PipeOpTargetMutate
, afterwards apply graph
.
At the very end, during prediction the transformation is inverted using PipeOpTargetInvert
.
To set a transformation and inversion function for PipeOpTargetMutate
see the
parameters trafo
and inverter
of the param_set
of the resulting Graph
.
Note that the input graph
is not explicitly checked to actually return a
Prediction
during prediction.
pipeline_targettrafo( graph, trafo_pipeop = PipeOpTargetMutate$new(), id_prefix = "" )
graph |
|
---|---|
trafo_pipeop |
|
id_prefix |
|
library("mlr3") tt = pipeline_targettrafo(PipeOpLearner$new(LearnerRegrRpart$new())) tt$param_set$values$targetmutate.trafo = function(x) log(x, base = 2) tt$param_set$values$targetmutate.inverter = function(x) list(response = 2 ^ x$response) # gives the same as g = Graph$new() g$add_pipeop(PipeOpTargetMutate$new(param_vals = list( trafo = function(x) log(x, base = 2), inverter = function(x) list(response = 2 ^ x$response)) ) ) g$add_pipeop(LearnerRegrRpart$new()) g$add_pipeop(PipeOpTargetInvert$new()) g$add_edge(src_id = "targetmutate", dst_id = "targetinvert", src_channel = 1, dst_channel = 1) g$add_edge(src_id = "targetmutate", dst_id = "regr.rpart", src_channel = 2, dst_channel = 1) g$add_edge(src_id = "regr.rpart", dst_id = "targetinvert", src_channel = 1, dst_channel = 2)