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 CPOLearner
s,
using the %>>%
operator, or the attachCPO
function. These CPOLearner
s
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()))