Extracts non-negative components from data by performing non-negative matrix factorization. Only
affects non-negative numerical features. See nmf() for details.
Format
R6Class object inheriting from PipeOpTaskPreproc/PipeOp.
Construction
id::character(1)
Identifier of resulting object, default"nmf".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 PipeOpTaskPreproc.
The output is the input Task with all affected numeric features replaced by their
non-negative components.
State
The $state is a named list with the $state elements inherited from PipeOpTaskPreproc,
as well as the elements of the object returned by nmf().
Parameters
The parameters are the parameters inherited from PipeOpTaskPreproc, as well as:
rank::integer(1)
Factorization rank, i.e., number of components. Initialized to2. Seenmf().method::character(1)
Specification of the NMF algorithm. Initialized to"brunet". Seenmf().seed::character(1)|integer(1)|list()| object of classNMF|function()
Specification of the starting point. Seenmf().nrun::integer(1)
Number of runs to performs. Default is1. More than a single run allows for the computation of a consensus matrix which will also be stored in the$state. Seenmf().debug::logical(1)
Whether to toggle debug mode. Default isFALSE. Seenmf().keep.all::logical(1)
Whether all factorizations are to be saved and returned. Default isFALSE. Only has an effect ifnrun > 1. Seenmf().parallel::character(1)|integer(1)|logical(1)
Specification of parallel handling ifnrun > 1. Initialized toFALSE, as it is recommended to usemlr3'sfuture-based parallelization. Seenmf().parallel.required::character(1)|integer(1)|logical(1)
Same asparallel, but an error is thrown if the computation cannot be performed in parallel or with the specified number of processors. Initialized toFALSE, as it is recommended to usemlr3'sfuture-based parallelization. Seenmf().shared.memory::logical(1)
Whether shared memory should be enabled. Seenmf().simplifyCB::logical(1)
Whether callback results should be simplified. Default isTRUE. Seenmf().track::logical(1)
Whether error tracking should be enabled. Default isFALSE. Seenmf().verbose::integer(1)|logical(1)
Specification of verbosity. Default isFALSE. Seenmf().pbackend::character(1)|integer(1)|NULL
Specification of the parallel backend. It is recommended to usemlr3'sfuture-based parallelization. Seenmf().callback|function()
Callback function that is called after each run (ifnrun > 1). Seenmf().
Fields
Only fields inherited from PipeOp.
Methods
Only methods inherited from PipeOpTaskPreproc/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_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_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_learner_pi_cvplus,
mlr_pipeops_learner_quantiles,
mlr_pipeops_missind,
mlr_pipeops_modelmatrix,
mlr_pipeops_multiplicityexply,
mlr_pipeops_multiplicityimply,
mlr_pipeops_mutate,
mlr_pipeops_nearmiss,
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_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
Examples
library("mlr3")
task = tsk("iris")
pop = po("nmf")
task$data()
#> Species Petal.Length Petal.Width Sepal.Length Sepal.Width
#> <fctr> <num> <num> <num> <num>
#> 1: setosa 1.4 0.2 5.1 3.5
#> 2: setosa 1.4 0.2 4.9 3.0
#> 3: setosa 1.3 0.2 4.7 3.2
#> 4: setosa 1.5 0.2 4.6 3.1
#> 5: setosa 1.4 0.2 5.0 3.6
#> ---
#> 146: virginica 5.2 2.3 6.7 3.0
#> 147: virginica 5.0 1.9 6.3 2.5
#> 148: virginica 5.2 2.0 6.5 3.0
#> 149: virginica 5.4 2.3 6.2 3.4
#> 150: virginica 5.1 1.8 5.9 3.0
pop$train(list(task))[[1]]$data()
#> Species NMF1 NMF2
#> <fctr> <num> <num>
#> 1: setosa 0.4722029 0.02426467
#> 2: setosa 0.4237720 0.04359711
#> 3: setosa 0.4322611 0.02502891
#> 4: setosa 0.4076002 0.04820838
#> 5: setosa 0.4735927 0.01986585
#> ---
#> 146: virginica 0.2489892 0.51344128
#> 147: virginica 0.2124087 0.49500193
#> 148: virginica 0.2463497 0.49957816
#> 149: virginica 0.2372032 0.51500688
#> 150: virginica 0.2226449 0.47879107
pop$state
#> $nmf
#> <Object of class: NMFfit>
#> # Model:
#> <Object of class:NMFstd>
#> features: 4
#> basis/rank: 2
#> samples: 150
#> # Details:
#> algorithm: brunet
#> seed: random
#> RNG: 10403L, 222L, ..., 581505866L [0c75f1787a6dee181f94de56ad96448d]
#> distance metric: 'KL'
#> residuals: 3.084419
#> Iterations: 650
#> Timing:
#> user system elapsed
#> 0.084 0.010 0.094
#>
#> $dt_columns
#> [1] "Petal.Length" "Petal.Width" "Sepal.Length" "Sepal.Width"
#>
#> $affected_cols
#> [1] "Petal.Length" "Petal.Width" "Sepal.Length" "Sepal.Width"
#>
#> $intasklayout
#> Key: <id>
#> id type
#> <char> <char>
#> 1: Petal.Length numeric
#> 2: Petal.Width numeric
#> 3: Sepal.Length numeric
#> 4: Sepal.Width numeric
#>
#> $outtasklayout
#> Key: <id>
#> id type
#> <char> <char>
#> 1: NMF1 numeric
#> 2: NMF2 numeric
#>
#> $outtaskshell
#> Empty data.table (0 rows and 3 cols): Species,NMF1,NMF2
#>
#> attr(,"class")
#> [1] "PipeOpNMFstate"
