mlr_learners_graph | R Documentation |
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.
R6Class
object inheriting from mlr3::Learner
.
GraphLearner$new(graph, id = NULL, param_vals = list(), task_type = NULL, predict_type = NULL)
graph
:: Graph
| PipeOp
Graph
to wrap. Can be a PipeOp
, which is automatically converted to a Graph
.
This argument is usually cloned, unless clone_graph
is FALSE
; to access the Graph
inside GraphLearner
by-reference, use $graph
.
id
:: character(1)
Identifier of the resulting Learner
.
param_vals
:: named list
List of hyperparameter settings, overwriting the hyperparameter settings . Default list()
.
task_type
:: character(1)
What task_type
the GraphLearner
should have; usually automatically inferred for Graph
s that are simple enough.
predict_type
:: character(1)
What predict_type
the GraphLearner
should have; usually automatically inferred for Graph
s that are simple enough.
clone_graph
:: logical(1)
Whether to clone graph
upon construction. Unintentionally changing graph
by reference can lead to unexpected behaviour,
so TRUE
(default) is recommended. In particular, note that the $state
of $graph
is set to NULL
by reference on
construction of GraphLearner
, during $train()
, and during $predict()
when clone_graph
is FALSE
.
Fields inherited from PipeOp
, as well as:
graph
:: Graph
Graph
that is being wrapped. This field contains the prototype of the Graph
that is being trained, but does not
contain the model. Use graph_model
to access the trained Graph
after $train()
. Read-only.
graph_model
:: Learner
Graph
that is being wrapped. This Graph
contains a trained state after $train()
. Read-only.
internal_tuned_values
:: named list()
or NULL
The internal tuned parameter values collected from all PipeOp
s.
NULL
is returned if the learner is not trained or none of the wrapped learners supports internal tuning.
internal_valid_scores
:: named list()
or NULL
The internal validation scores as retrieved from the PipeOps
.
The names are prefixed with the respective IDs of the PipeOp
s.
NULL
is returned if the learner is not trained or none of the wrapped learners supports internal validation.
validate
:: numeric(1)
, "predefined"
, "test"
or NULL
How to construct the validation data. This also has to be configured for the individual PipeOp
s such as
PipeOpLearner
, see set_validate.GraphLearner
.
For more details on the possible values, see mlr3::Learner
.
marshaled
:: logical(1)
Whether the learner is marshaled.
marshal(...)
(any) -> self
Marshal the model.
unmarshal(...)
(any) -> self
Unmarshal the model.
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.
Other Learners:
mlr_learners_avg
library("mlr3")
graph = po("pca") %>>% lrn("classif.rpart")
lr = GraphLearner$new(graph)
lr = as_learner(graph) # equivalent
lr$train(tsk("iris"))
lr$graph$state # untrained version!
# The following is therefore NULL:
lr$graph$pipeops$classif.rpart$learner_model$model
# To access the trained model from the PipeOpLearner's Learner, use:
lr$graph_model$pipeops$classif.rpart$learner_model$model
# Feature importance (of principal components):
lr$graph_model$pipeops$classif.rpart$learner_model$importance()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.