Gives the operating type of a CPO or Retrafo, i.e. the part of a given data set it operates on. This can be “target” for a CPO / Retrafo / Inverter that manipulates target columns, “feature” for a CPO / Retrafo that manipulates non-target columns, or “retrafoless” for a CPO that only handles training data (and hence can manipulate both feature and target columns, but produces no retrafo).

For a composite CPO / Retrafo of different operating types, all types are returned. NULLCPO has no operating type.

getCPOOperatingType(cpo)

## Arguments

cpo [CPO | CPOTrained] The CPO, Retrafo, or Inverter to inspect.

## Value

[character(1)]. Zero or more of “target”, “feature”, “retrafoless”.

## Operating types

There are three types of CPO that differ in their effects on the data: “Feature Operation”, “Target Operation”, and “Retrafoless”.

Feature Operation CPOs (FOCPO) only change the feature columns of a data set, and don't change the target column(s). They therefore cannot change the type of a Task, and will never change the number of rows of a data set. They are the easiest CPO to handle, as they do not require inversion of predictions made with processed data. Examples of Feature Operation CPOs is the scaling of individual features to have unit variance (cpoScale), or the projection on principal components (cpoPca).

Target Operation CPOs (TOCPO) only change the target column(s) of a data set, not the feature columns. They can thus also change the type of a Task, and the PredictTypes admitted by a Learner. They are thus a powerful instrument, but they are harder to handle, since predictions made with data sets processed with this kind of CPO need to be inverted using the invert function and possibly an CPOInverter object (see documentation there). (Note that attaching a Target Operation CPO to a Learner will hide this complexity from the user and is the recommended way of handling it.) Examples of Target Operation CPOs are the log-transformation of the target column of a regression task, the conversion of a binary classification task into a 0-1-regression task, or the substitution of the target values into the residuals after a Learner was applied to the task. Note that the last of these examples distinguishes itself by the fact that the inversion operation is dependent on the prediction data used. While for the first two examples, the CPORetrafo object can be used for inversionk, the last one requires the CPOInverter object. See CPOTrainedCapability for more on this.

Retrafoless CPOs (ROCPO) can change the feature and target columns of a task, but this comes at the cost of not allowing retransformations. When getting the CPORetrafo object using retrafo, one will always get an identity transformation. While other CPOs can be understood as transforming the space of features or target values, respectively, the Retrafoless CPO can only add or subtract points in the given space. Examples of this operation are subsampling and supersampling.

Other getters and setters: CPO, getCPOAffect, getCPOClass, getCPOConstructor, getCPOId, getCPOName, getCPOPredictType, getCPOProperties, getCPOTrainedCPO, getCPOTrainedCapability, setCPOId

Other retrafo related: CPOTrained, NULLCPO, %>>%, applyCPO, as.list.CPO, clearRI, getCPOClass, getCPOName, getCPOPredictType, getCPOProperties, getCPOTrainedCPO, getCPOTrainedCapability, getCPOTrainedState, is.retrafo, makeCPOTrainedFromState, pipeCPO, print.CPOConstructor

Other inverter related: CPOTrained, NULLCPO, %>>%, applyCPO, as.list.CPO, clearRI, getCPOClass, getCPOName, getCPOPredictType, getCPOProperties, getCPOTrainedCPO, getCPOTrainedCapability, getCPOTrainedState, is.inverter, makeCPOTrainedFromState, pipeCPO, print.CPOConstructor

Other CPO classifications: CPO, getCPOClass, getCPOTrainedCapability