Linearly transforms a numeric target of a TaskRegr so it is between lower and upper. The formula for this is \(x' = offset + x * scale\), where \(scale\) is \((upper - lower) / (max(x) - min(x))\) and \(offset\) is \(-min(x) * scale + lower\). The same transformation is applied during training and prediction.

Format

R6Class object inheriting from PipeOpTargetTrafo/PipeOp

Construction

PipeOpTargetTrafoScaleRange$new(id = "targettrafoscalerange", param_vals = list())
  • id :: character(1)
    Identifier of resulting object, default "targettrafoscalerange".

  • param_vals :: named list
    List of hyperparameter settings, overwriting the hyperparameter settings that would otherwise be set during construction. Default list().

Input and Output Channels

Input and output channels are inherited from PipeOpTargetTrafo.

State

The $state is a named list containing the slots $offset and $scale.

Parameters

The parameters are the parameters inherited from PipeOpTargetTrafo, as well as:

  • lower :: numeric(1)
    Target value of smallest item of input target. Initialized to 0.

  • upper :: numeric(1)
    Target value of greatest item of input target. Initialized to 1.

Internals

Overloads PipeOpTargetTrafo's .get_state(), .transform(), and .invert(). Should be used in combination with PipeOpTargetInvert.

Methods

Only methods inherited from PipeOpTargetTrafo/PipeOp.

See also

Other PipeOps: PipeOpEnsemble, PipeOpImpute, PipeOpTargetTrafo, PipeOpTaskPreprocSimple, PipeOpTaskPreproc, PipeOp, mlr_pipeops_boxcox, mlr_pipeops_branch, mlr_pipeops_chunk, mlr_pipeops_classbalancing, mlr_pipeops_classifavg, mlr_pipeops_classweights, mlr_pipeops_colapply, mlr_pipeops_collapsefactors, mlr_pipeops_colroles, mlr_pipeops_copy, mlr_pipeops_datefeatures, mlr_pipeops_encodeimpact, mlr_pipeops_encodelmer, mlr_pipeops_encode, mlr_pipeops_featureunion, mlr_pipeops_filter, mlr_pipeops_fixfactors, mlr_pipeops_histbin, mlr_pipeops_ica, mlr_pipeops_imputeconstant, mlr_pipeops_imputehist, mlr_pipeops_imputelearner, mlr_pipeops_imputemean, mlr_pipeops_imputemedian, mlr_pipeops_imputemode, mlr_pipeops_imputeoor, mlr_pipeops_imputesample, mlr_pipeops_kernelpca, mlr_pipeops_learner, mlr_pipeops_missind, mlr_pipeops_modelmatrix, mlr_pipeops_multiplicityexply, mlr_pipeops_multiplicityimply, mlr_pipeops_mutate, mlr_pipeops_nmf, mlr_pipeops_nop, mlr_pipeops_ovrsplit, mlr_pipeops_ovrunite, mlr_pipeops_pca, mlr_pipeops_proxy, mlr_pipeops_quantilebin, mlr_pipeops_randomprojection, mlr_pipeops_randomresponse, mlr_pipeops_regravg, mlr_pipeops_removeconstants, mlr_pipeops_renamecolumns, mlr_pipeops_replicate, mlr_pipeops_scalemaxabs, mlr_pipeops_scalerange, mlr_pipeops_scale, mlr_pipeops_select, mlr_pipeops_smote, mlr_pipeops_spatialsign, mlr_pipeops_subsample, mlr_pipeops_targetinvert, mlr_pipeops_targetmutate, mlr_pipeops_textvectorizer, mlr_pipeops_threshold, mlr_pipeops_tunethreshold, mlr_pipeops_unbranch, mlr_pipeops_updatetarget, mlr_pipeops_vtreat, mlr_pipeops_yeojohnson, mlr_pipeops

Examples

library(mlr3) task = tsk("boston_housing") po = PipeOpTargetTrafoScaleRange$new() po$train(list(task))
#> $fun #> NULL #> #> $output #> <TaskRegr:boston_housing> (506 x 19) #> * Target: medv.scaled #> * Properties: - #> * Features (18): #> - dbl (13): age, b, cmedv, crim, dis, indus, lat, lon, lstat, nox, #> ptratio, rm, zn #> - int (3): rad, tax, tract #> - fct (2): chas, town #>
po$predict(list(task))
#> $fun #> function (inputs) #> { #> assert_list(inputs, len = 1L, types = "Prediction") #> list(private$.invert(inputs[[1L]], predict_phase_state)) #> } #> <bytecode: 0x561f71f19e28> #> <environment: 0x561f7006b178> #> #> $output #> <TaskRegr:boston_housing> (506 x 19) #> * Target: medv.scaled #> * Properties: - #> * Features (18): #> - dbl (13): age, b, cmedv, crim, dis, indus, lat, lon, lstat, nox, #> ptratio, rm, zn #> - int (3): rad, tax, tract #> - fct (2): chas, town #>
#syntactic sugar for a graph using ppl(): ttscalerange = ppl("targettrafo", trafo_pipeop = PipeOpTargetTrafoScaleRange$new(), graph = PipeOpLearner$new(LearnerRegrRpart$new())) ttscalerange$train(task)
#> $targetinvert.output #> NULL #>
ttscalerange$predict(task)
#> $targetinvert.output #> <PredictionRegr> for 506 observations: #> row_id truth response #> 1 24.0 23.72519 #> 2 21.6 19.55954 #> 3 34.7 35.10312 #> --- #> 504 23.9 23.72519 #> 505 22.0 23.72519 #> 506 11.9 19.55954 #>
ttscalerange$state$regr.rpart
#> $model #> n= 506 #> #> node), split, n, deviance, yval #> * denotes terminal node #> #> 1) root 506 21.09447000 0.38961790 #> 2) cmedv< 27.7 400 4.76453900 0.30601110 #> 4) cmedv< 17.35 134 0.62918150 0.17794360 #> 8) cmedv< 11.95 42 0.07619577 0.09190476 * #> 9) cmedv>=11.95 92 0.10013460 0.21722220 * #> 5) cmedv>=17.35 266 0.83043740 0.37052630 #> 10) cmedv< 21.65 131 0.11194840 0.32354540 * #> 11) cmedv>=21.65 135 0.14876760 0.41611520 * #> 3) cmedv>=27.7 106 2.98279700 0.70511530 #> 6) cmedv< 39.25 74 0.31924910 0.60438440 #> 12) cmedv< 32.6 42 0.03997942 0.55518520 * #> 13) cmedv>=32.6 32 0.04417269 0.66895830 * #> 7) cmedv>=39.25 32 0.17633330 0.93805560 * #> #> $log #> Empty data.table (0 rows and 3 cols): stage,class,msg #> #> $train_time #> [1] 0.013 #> #> $train_task #> <TaskRegr:boston_housing> (0 x 19) #> * Target: medv.scaled #> * Properties: - #> * Features (18): #> - dbl (13): age, b, cmedv, crim, dis, indus, lat, lon, lstat, nox, #> ptratio, rm, zn #> - int (3): rad, tax, tract #> - fct (2): chas, town #>