CPO Learners are created when a CPO
gets attached to an mlr-Learner
object. The resulting
learner performs the operation described by the attached CPO
before fitting the model specified by the
Learner
. It is possible to attach compound CPOs, and it is possible to attach more CPOs to a learner
that is already a CPOLearner
. If the attached CPO exports hyperparameters, these become part of the newly created
learner and can be queried and set using functions such as getParamSet
, getHyperPars
,
and setHyperPars
.
The model created when training a CPOLearner
also contains the relevant CPORetrafo
information to be applied
to prediction data; this can be retrieved using retrafo
. The CPOInverter
functionality is handled
equally transparently by the model.
A CPOLearner can possibly have different LearnerProperties
than the base Learner
to which
it is attached. This depends on the CPO
's properties, see CPOProperties
.
It is possible to retrieve the CPOLearner
's base learner using getLearnerBare
, and to get the attached CPOs
using getLearnerCPO
.
Other CPO lifecycle related:
CPOConstructor
,
CPOTrained
,
CPO
,
NULLCPO
,
%>>%()
,
attachCPO()
,
composeCPO()
,
getCPOClass()
,
getCPOConstructor()
,
getCPOTrainedCPO()
,
identicalCPO()
,
makeCPO()
Other CPOLearner related:
attachCPO()
,
getLearnerBare()
,
getLearnerCPO()
#> Learner classif.logreg.scale from package stats #> Type: classif #> Name: ; Short name: #> Class: CPOLearner #> Properties: numerics,factors,twoclass,prob #> Predict-Type: response #> Hyperparameters: model=FALSE #>#> Learner classif.logreg from package stats #> Type: classif #> Name: Logistic Regression; Short name: logreg #> Class: classif.logreg #> Properties: twoclass,numerics,factors,prob,weights #> Predict-Type: response #> Hyperparameters: model=FALSE #>#> scale(center = TRUE, scale = TRUE)getParamSet(cpolrn) # includes cpoScale hyperparameters#> Type len Def Constr Req Tunable Trafo #> scale.center logical - TRUE - - TRUE - #> scale.scale logical - TRUE - - TRUE - #> model logical - TRUE - - FALSE -model = train(cpolrn, pid.task) # behaves like a learner retrafo(model) # the CPORetrafo that was trained#> CPO Retrafo chain #> [RETRAFO scale(center = TRUE, scale = TRUE)]#> Prediction: 768 observations #> predict.type: response #> threshold: #> time: 0.01 #> id truth response #> 1 1 pos pos #> 2 2 neg neg #> 3 3 pos pos #> 4 4 neg neg #> 5 5 pos pos #> 6 6 neg neg #> ... (#rows: 768, #cols: 3)