
Impute Numeric, Integer, POSIXct or Date Features by Histogram
Source:R/PipeOpImputeHist.R
mlr_pipeops_imputehist.RdImpute numeric, integer, POSIXct or Date features by histogram.
During training, a histogram is fitted on each column using R's hist() function.
The fitted histogram is then sampled from for imputation. Sampling happens in a two-step process:
First, a bin is sampled from the histogram, then a value is sampled uniformly from the bin.
This is an approximation to sampling from the empirical training data distribution (i.e. sampling
from training data with replacement), but is much more memory efficient for large datasets, since the $state
does not need to save the training data.
Format
R6Class object inheriting from PipeOpImpute/PipeOp.
Construction
id::character(1)
Identifier of resulting object, default"imputehist".param_vals:: namedlist
List of hyperparameter settings, overwriting the hyperparameter settings that would otherwise be set during construction. Defaultlist().
Input and Output Channels
Input and output channels are inherited from PipeOpImpute.
The output is the input Task with all affected numeric, integer, POSIXct or Date features missing values imputed by (column-wise) histogram; see Description for details.
State
The $state is a named list with the $state elements inherited from PipeOpImpute.
The $state$model is a named list of lists containing elements $counts and $breaks.
Parameters
The parameters are the parameters inherited from PipeOpImpute.
Internals
Uses the graphics::hist() function. Features that are entirely NA are imputed as 0.
Fields
Only fields inherited from PipeOp.
Methods
Only methods inherited from PipeOpImpute/PipeOp.
See also
https://mlr-org.com/pipeops.html
Other PipeOps:
PipeOp,
PipeOpEncodePL,
PipeOpEnsemble,
PipeOpImpute,
PipeOpTargetTrafo,
PipeOpTaskPreproc,
PipeOpTaskPreprocSimple,
mlr_pipeops,
mlr_pipeops_adas,
mlr_pipeops_blsmote,
mlr_pipeops_boxcox,
mlr_pipeops_branch,
mlr_pipeops_chunk,
mlr_pipeops_classbalancing,
mlr_pipeops_classifavg,
mlr_pipeops_classweights,
mlr_pipeops_classweightsex,
mlr_pipeops_colapply,
mlr_pipeops_collapsefactors,
mlr_pipeops_colroles,
mlr_pipeops_copy,
mlr_pipeops_datefeatures,
mlr_pipeops_decode,
mlr_pipeops_encode,
mlr_pipeops_encodeimpact,
mlr_pipeops_encodelmer,
mlr_pipeops_encodeplquantiles,
mlr_pipeops_encodepltree,
mlr_pipeops_featureunion,
mlr_pipeops_filter,
mlr_pipeops_fixfactors,
mlr_pipeops_histbin,
mlr_pipeops_ica,
mlr_pipeops_imputeconstant,
mlr_pipeops_imputelearner,
mlr_pipeops_imputemean,
mlr_pipeops_imputemedian,
mlr_pipeops_imputemode,
mlr_pipeops_imputeoor,
mlr_pipeops_imputesample,
mlr_pipeops_info,
mlr_pipeops_isomap,
mlr_pipeops_kernelpca,
mlr_pipeops_learner,
mlr_pipeops_learner_pi_cvplus,
mlr_pipeops_learner_quantiles,
mlr_pipeops_materialize,
mlr_pipeops_missind,
mlr_pipeops_modelmatrix,
mlr_pipeops_multiplicityexply,
mlr_pipeops_multiplicityimply,
mlr_pipeops_mutate,
mlr_pipeops_nearmiss,
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_rowapply,
mlr_pipeops_scale,
mlr_pipeops_scalemaxabs,
mlr_pipeops_scalerange,
mlr_pipeops_select,
mlr_pipeops_smote,
mlr_pipeops_smotenc,
mlr_pipeops_spatialsign,
mlr_pipeops_splines,
mlr_pipeops_subsample,
mlr_pipeops_targetinvert,
mlr_pipeops_targetmutate,
mlr_pipeops_targettrafoscalerange,
mlr_pipeops_textvectorizer,
mlr_pipeops_threshold,
mlr_pipeops_tomek,
mlr_pipeops_tunethreshold,
mlr_pipeops_unbranch,
mlr_pipeops_updatetarget,
mlr_pipeops_vtreat,
mlr_pipeops_yeojohnson
Other Imputation PipeOps:
PipeOpImpute,
mlr_pipeops_imputeconstant,
mlr_pipeops_imputelearner,
mlr_pipeops_imputemean,
mlr_pipeops_imputemedian,
mlr_pipeops_imputemode,
mlr_pipeops_imputeoor,
mlr_pipeops_imputesample
Examples
library("mlr3")
task = tsk("diabetes")
task$missings()
#> diabetes age glucose insulin mass pedigree pregnant pressure
#> 0 0 5 405 13 0 0 35
#> triceps
#> 251
po = po("imputehist")
new_task = po$train(list(task = task))[[1]]
new_task$missings()
#> diabetes age pedigree pregnant glucose insulin mass pressure
#> 0 0 0 0 0 0 0 0
#> triceps
#> 0
po$state$model
#> $age
#> $age$counts
#> [1] 266 176 80 53 71 40 30 22 14 12 2 0 2
#>
#> $age$breaks
#> [1] 20 25 30 35 40 45 50 55 60 65 70 75 80 85
#>
#>
#> $glucose
#> $glucose$counts
#> [1] 3 2 19 75 90 82 120 101 58 47 29 47 24 34 32
#>
#> $glucose$breaks
#> [1] 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200
#>
#>
#> $insulin
#> $insulin$counts
#> [1] 132 150 44 12 12 12 0 0 1
#>
#> $insulin$breaks
#> [1] 0 100 200 300 400 500 600 700 800 900
#>
#>
#> $mass
#> $mass$counts
#> [1] 14 87 182 217 153 68 23 5 6
#>
#> $mass$breaks
#> [1] 15 20 25 30 35 40 45 50 55 60
#>
#>
#> $pedigree
#> $pedigree$counts
#> [1] 139 280 139 98 62 17 17 2 7 0 1 3 3
#>
#> $pedigree$breaks
#> [1] 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6
#>
#>
#> $pregnant
#> $pregnant$counts
#> [1] 218 61 117 55 52 35 73 31 14 29 13 8 62
#>
#> $pregnant$breaks
#> [1] 0 1 2 3 4 5 6 7 8 9 10 11 12 13
#>
#>
#> $pressure
#> $pressure$counts
#> [1] 3 0 24 90 211 235 127 35 8
#>
#> $pressure$breaks
#> [1] 20 30 40 50 60 70 80 90 100 110
#>
#>
#> $triceps
#> $triceps$counts
#> [1] 7 43 57 66 117 85 61 57 16 2 3 3
#>
#> $triceps$breaks
#> [1] 5 10 15 20 25 30 35 40 45 50 55 60 65
#>
#>