A Learner
that encapsulates a Graph
to be used in
mlr3 resampling and benchmarks.
The Graph must return a single Prediction
on its $predict()
call. The result of the $train()
call is discarded, only the
internal state changes during training are used.
The predict_type
of a GraphLearner
can be obtained or set via it's predict_type
active binding.
Setting a new predict type will try to set the predict_type
in all relevant
PipeOp
/ Learner
encapsulated within the Graph
.
Similarly, the predict_type of a Graph will always be the smallest denominator in the Graph
.
A GraphLearner
is always constructed in an untrained state. When the graph
argument has a
non-NULL
$state
, it is ignored.
Format
R6Class
object inheriting from mlr3::Learner
.
Construction
graph
::Graph
|PipeOp
Graph
to wrap. Can be aPipeOp
, which is automatically converted to aGraph
. This argument is usually cloned, unlessclone_graph
isFALSE
; to access theGraph
insideGraphLearner
by-reference, use$graph
.id
::character(1)
Identifier of the resultingLearner
.param_vals
:: namedlist
List of hyperparameter settings, overwriting the hyperparameter settings . Defaultlist()
.task_type
::character(1)
Whattask_type
theGraphLearner
should have; usually automatically inferred forGraph
s that are simple enough.predict_type
::character(1)
Whatpredict_type
theGraphLearner
should have; usually automatically inferred forGraph
s that are simple enough.clone_graph
::logical(1)
Whether to clonegraph
upon construction. Unintentionally changinggraph
by reference can lead to unexpected behaviour, soTRUE
(default) is recommended. In particular, note that the$state
of$graph
is set toNULL
by reference on construction ofGraphLearner
, during$train()
, and during$predict()
whenclone_graph
isFALSE
.
Fields
Fields inherited from PipeOp
, as well as:
graph
::Graph
Graph
that is being wrapped. This field contains the prototype of theGraph
that is being trained, but does not contain the model. Usegraph_model
to access the trainedGraph
after$train()
. Read-only.graph_model
::Learner
Graph
that is being wrapped. ThisGraph
contains a trained state after$train()
. Read-only.internal_tuned_values
:: namedlist()
orNULL
The internal tuned parameter values collected from allPipeOp
s.NULL
is returned if the learner is not trained or none of the wrapped learners supports internal tuning.internal_valid_scores
:: namedlist()
orNULL
The internal validation scores as retrieved from thePipeOps
. The names are prefixed with the respective IDs of thePipeOp
s.NULL
is returned if the learner is not trained or none of the wrapped learners supports internal validation.validate
::numeric(1)
,"predefined"
,"test"
orNULL
How to construct the validation data. This also has to be configured for the individualPipeOp
s such asPipeOpLearner
, seeset_validate.GraphLearner
. For more details on the possible values, seemlr3::Learner
.marshaled
::logical(1)
Whether the learner is marshaled.
Methods
marshal(...)
(any) ->self
Marshal the model.unmarshal(...)
(any) ->self
Unmarshal the model.
Internals
as_graph()
is called on the graph
argument, so it can technically also be a list
of things, which is
automatically converted to a Graph
via gunion()
; however, this will usually not result in a valid Graph
that can
work as a Learner
. graph
can furthermore be a Learner
, which is then automatically
wrapped in a Graph
, which is then again wrapped in a GraphLearner
object; this usually only adds overhead and is not
recommended.
See also
Other Learners:
mlr_learners_avg