While CPOInverter
is only used for inversion,
both CPORetrafo
and CPOInverter
objects could be used for inversion using
invert
in principle. However, some CPORetrafo
objects forbid inversion (and one must use the CPOInverter
object instead),
some CPORetrafo
objects are NO-OPS when called with invert
,
some can be used both for transformation and inversion.
The CPOTrainedCapability
is a named integer(2)
with two slots: “retrafo” and
“invert”. Both can be 1
(CPOTrained
does something when used in retrafo
/ inversion), 0
(CPOTrained
is a NO-OP when used in retrafo / inversion) or
-1
(CPOTrained
cannot be used in retrafo / inversion).
getCPOTrainedCapability(cpo)
cpo | [ |
---|
[named integer(2)
]. The first component is named “retrafo” and specifies whether the object can perform
retrafo operations; the second component is named “invert” and specifies whether it can perform invert operations.
0
indicates no effect for the operation, 1
indicates an operation is performed, -1
indicates the object
cannot be used for the purpose.
The invert capability of a CPOTrained
depends on the CPO
which was used to
create it. Whenever a CPO
is applied to some data, the result has the link{retrafo}
and inverter
attributes set that can be retrieved using the respectively named functions to
get the CPORetrafo
and CPOInverter
object.
Every CPO
can be a
“Feature Operation” CPO, a “Target Operation” CPO, or a “Retrafoless” CPO, or a composition
of these (see OperatingType).
If a (possibly compound) CPO contains only Feature Operation CPOs and Retrafoless CPOs, then it does not perform any operation
on the target column of a data set; hence there is no inversion to be performed, the resulting CPORetrafo
is a NO-OP when used with invert
. The inverter
attribute created is in fact a
NULLCPO
), while the retrafo
attribute contains a CPORetrafo
with
capabilities c(retrafo = 1, invert = 0)
.
If a (possibly compound) CPO also contains Target Operation CPOs, but they are independent of the prediction data features--e.g. a CPO that
takes the logarithm of the target column in a regression task--then the CPORetrafo
object has enough information
to perform inversion and hence can also meaningfully be used with invert
. In this case the capability
of the CPORetrafo
will be c(retrafo = 1, invert = 1)
. The CPOInverter
object retrieved using the inverter
function can be used for the same task, but the benefit of the
CPORetrafo
object is that it can be used for all prediction data applied to it, while the
CPOInverter
object needs to be retrieved for each prediction data set anew. The CPOInverter
object furthermore cannot be used for retrafo and hence has, like all CPOInverter
, capabilities c(retrafo = -1, invert = 1)
.
If a (possibly compound) CPO contains Target Operation CPOs that are not prediction data independent then the resulting
CPORetrafo
has capability c(retrafo = 1, invert = -1)
, since the inversion requires information about
the particular data set that was transformed.
A CPOInverter
object always has capabilities c(retrafo = -1, invert = 1)
, since it can always be used
for invert
and never used in the place of a CPORetrafo
.
The only object with capabilities c(retrafo = 0, invert = 0)
is NULLCPO
. Other objects that don't have at least
one capability equal to 1
cannot be created.
Other getters and setters:
CPO
,
getCPOAffect()
,
getCPOClass()
,
getCPOConstructor()
,
getCPOId()
,
getCPOName()
,
getCPOOperatingType()
,
getCPOPredictType()
,
getCPOProperties()
,
getCPOTrainedCPO()
,
setCPOId()
Other retrafo related:
CPOTrained
,
NULLCPO
,
%>>%()
,
applyCPO()
,
as.list.CPO
,
clearRI()
,
getCPOClass()
,
getCPOName()
,
getCPOOperatingType()
,
getCPOPredictType()
,
getCPOProperties()
,
getCPOTrainedCPO()
,
getCPOTrainedState()
,
is.retrafo()
,
makeCPOTrainedFromState()
,
pipeCPO()
,
print.CPOConstructor()
Other inverter related:
CPOTrained
,
NULLCPO
,
%>>%()
,
applyCPO()
,
as.list.CPO
,
clearRI()
,
getCPOClass()
,
getCPOName()
,
getCPOOperatingType()
,
getCPOPredictType()
,
getCPOProperties()
,
getCPOTrainedCPO()
,
getCPOTrainedState()
,
is.inverter()
,
makeCPOTrainedFromState()
,
pipeCPO()
,
print.CPOConstructor()
Other CPO classifications:
CPO
,
getCPOClass()
,
getCPOOperatingType()