| CPO {mlrCPO} | R Documentation |
Composable Preprocessing Operators
Description
Composable Preprocessing Operators, or CPO, are the central entity provided by the mlrCPO package.
CPOs can perform operations on a data.frame or a Task, for the latter even
modifying target values and converting between different Task types.
CPOs can be “composed” using the %>>% operator, the composeCPO function, or
the pipeCPO function, to create new (“compound”) operators that perform multiple operations
in a pipeline. While all CPOs have the class “CPO”, primitive (i.e. not compound) CPOs have the additional class
“CPOPrimitive”, and compound CPOs have the class “CPOPipeline”. It is possible to split a compound CPOs
into its primitive constituents using as.list.CPO.
CPOs can be “attached” to a mlr-Learner objects to create CPOLearners,
using the %>>% operator, or the attachCPO function. These CPOLearners
fit the model specified by the Learner to the data after applying the attached CPO. Many CPOs can
be attached to a Learner sequentially, or in form of a compound CPO.
CPOs can be “applied” to a data.frame or a Task using the
%>>% operator, or the applyCPO function. Applying a CPO performs the operations specified
by the (possibly compound) CPO, and returns the modified data. This data also contains a “retrafo” and and
“inverter” tag, which can be accessed using the retrafo and inverter functions to
get CPORetrafo and CPOInverter objects, respectively. These objects represent the “trained”
CPOs that can be used when performing validation or predictions with new data.
Hyperparameters
CPOs can have hyperparameters that determine how they operate on data. These hyperparameters can be set during
construction, as function parameters of the CPOConstructor, or they can potentially be modified
later as exported hyperparameters. Which hyperparameters are exported is controlled using the export parameter
of the CPOConstructor when the CPO was created. Hyperparameters can be listed using getParamSet,
queried using getHyperPars and set using setHyperPars.
S3 properties
A CPO object should be treated as an opaque object and should only be queried / modified using the given set* and
get* functions. A list of them is given below in the section “See Also”–“cpo-operations”.
Special CPO
A special CPO is NULLCPO, which functions as the neutral element of the %>>% operator
and represents the identity operation on data.
See Also
print.CPO for possibly verbose printing.
Other CPO lifecycle related:
CPOConstructor,
CPOLearner,
CPOTrained,
NULLCPO,
%>>%(),
attachCPO(),
composeCPO(),
getCPOClass(),
getCPOConstructor(),
getCPOTrainedCPO(),
identicalCPO(),
makeCPO()
Other operators:
%>>%(),
applyCPO(),
as.list.CPO,
attachCPO(),
composeCPO(),
pipeCPO()
Other getters and setters:
getCPOAffect(),
getCPOClass(),
getCPOConstructor(),
getCPOId(),
getCPOName(),
getCPOOperatingType(),
getCPOPredictType(),
getCPOProperties(),
getCPOTrainedCPO(),
getCPOTrainedCapability(),
setCPOId()
Other CPO classifications:
getCPOClass(),
getCPOOperatingType(),
getCPOTrainedCapability()
Examples
class(cpoPca()) # c("CPOPrimitive", "CPO")
class(cpoPca() %>>% cpoScale()) # c("CPOPipeline", "CPO")
print(cpoPca() %>>% cpoScale(), verbose = TRUE)
getHyperPars(cpoScale(center = FALSE))
head(getTaskData(iris.task %>>% cpoScale()))