Skip to contents

Reduces the dimensionality of the data of the input Task using the Isomap algorithm from the dimRed-package, preserving geodesic distances between observations. The number of neighbors (knn) and embedding dimensions (ndim) control the transformation.

Format

R6Class object inheriting from PipeOpTaskPreproc

Construction

PipeOpIsomap$new(id = "isomap", ...)

  • id :: character(1)
    Identifier of resulting object, default "isomap"

  • 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 PipeOpTaskPreproc.

The output is the input Task with the data projected to the lower-dimensional space.

State

The $state is a named list with the $state elements inherited from PipeOpTaskPreproc, as well as:

  • embed_result :: dimRedResult
    The resulting object after applying the "Isomap"-method from the dimRed-package to the data.

Parameters

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

  • knn :: integer(1)
    The number of nearest neighbors in the graph. Initialized to 50.

  • ndim :: integer(1)
    The number of embedding dimensions. Initialized to 2.

  • get_geod :: logical(1)
    Determines whether the distance matrix should be kept in the $state. Initialized to FALSE.

  • .mute :: character
    A character vector of elements to mute during training (e.g. c("message", "output")). Initialized to NULL.

Internals

Applies the Isomap embedding from the dimRed-package.

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_info, 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_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_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")
po = po("isomap", .mute = c("message", "output"))
po$train(list(tsk("iris")))[[1]]$data()
#> 2025-11-07 09:35:49.288202: Isomap START
#> 2025-11-07 09:35:49.288824: constructing knn graph
#> 2025-11-07 09:35:49.294898: calculating geodesic distances
#> 2025-11-07 09:35:49.306564: Classical Scaling
#>        Species     iso 1       iso 2
#>         <fctr>     <num>       <num>
#>   1:    setosa  3.006919  0.07103516
#>   2:    setosa  2.811142 -0.01166615
#>   3:    setosa  2.986207 -0.01144926
#>   4:    setosa  2.806290 -0.04938416
#>   5:    setosa  3.058659  0.06831346
#>  ---                                
#> 146: virginica -2.196987 -0.08264888
#> 147: virginica -1.686333 -0.20762732
#> 148: virginica -1.918935 -0.02974437
#> 149: virginica -2.147343 -0.45132197
#> 150: virginica -1.496149 -0.38356003
po$predict(list(tsk("iris")))[[1]]$data()
#> 2025-11-07 09:35:49.328571: L-Isomap embed START
#> 2025-11-07 09:35:49.329042: constructing knn graph
#> 2025-11-07 09:35:49.394896: calculating geodesic distances
#> 2025-11-07 09:35:49.423932: embedding
#> 2025-11-07 09:35:49.424828: DONE
#>        Species     iso 1       iso 2
#>         <fctr>     <num>       <num>
#>   1:    setosa  3.116505  0.14031343
#>   2:    setosa  3.187694  0.06538543
#>   3:    setosa  3.353695  0.08188216
#>   4:    setosa  3.276464  0.05190966
#>   5:    setosa  3.177456  0.14486870
#>  ---                                
#> 146: virginica -2.450614 -0.03484862
#> 147: virginica -1.945743 -0.28848900
#> 148: virginica -2.195048 -0.07170767
#> 149: virginica -2.387208 -0.42090036
#> 150: virginica -1.735687 -0.39239993