Skip to contents

Extracts kernel principle components from data. Only affects numerical features. See kernlab::kpca for details.


R6Class object inheriting from PipeOpTaskPreproc/PipeOp.


PipeOpKernelPCA$new(id = "kernelpca", param_vals = list())

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

  • 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 all affected numeric parameters replaced by their principal components.


The $state is a named list with the $state elements inherited from PipeOpTaskPreproc, as well as the returned S4 object of the function kernlab::kpca().

The @rotated slot of the "kpca" object is overwritten with an empty matrix for memory efficiency.

The slots of the S4 object can be accessed by accessor function. See kernlab::kpca.


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

  • kernel :: character(1)
    The standard deviations of the principal components. See kpca().

  • kpar :: list
    List of hyper-parameters that are used with the kernel function. See kpca().

  • features :: numeric(1)
    Number of principal components to return. Default 0 means that all principal components are returned. See kpca().

  • th :: numeric(1)
    The value of eigenvalue under which principal components are ignored. Default is 0.0001. See kpca().

  • na.action :: function
    Function to specify NA action. Default is na.omit. See kpca().


Uses the kpca() function.


Only methods inherited from PipeOpTaskPreproc/PipeOp.

See also

Other PipeOps: PipeOp, PipeOpEnsemble, PipeOpImpute, PipeOpTargetTrafo, PipeOpTaskPreproc, PipeOpTaskPreprocSimple, mlr_pipeops, 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_encode, mlr_pipeops_encodeimpact, mlr_pipeops_encodelmer, 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_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_scale, mlr_pipeops_scalemaxabs, mlr_pipeops_scalerange, mlr_pipeops_select, mlr_pipeops_smote, mlr_pipeops_spatialsign, mlr_pipeops_subsample, mlr_pipeops_targetinvert, mlr_pipeops_targetmutate, mlr_pipeops_targettrafoscalerange, mlr_pipeops_textvectorizer, mlr_pipeops_threshold, mlr_pipeops_tunethreshold, mlr_pipeops_unbranch, mlr_pipeops_updatetarget, mlr_pipeops_vtreat, mlr_pipeops_yeojohnson


 if (requireNamespace("kernlab")) { 

task = tsk("iris")
pop = po("kernelpca", features = 3)  # only keep top 3 components

#>        Species        V1         V2           V3
#>         <fctr>     <num>      <num>        <num>
#>   1:    setosa -9.439059 -1.1738319  0.818082979
#>   2:    setosa -9.306342 -0.8132986 -1.523991896
#>   3:    setosa -9.536490 -1.3665450 -1.351184473
#>   4:    setosa -9.279544 -0.8197809 -2.060504832
#>   5:    setosa -9.483230 -1.3216931  0.865439972
#>  ---                                            
#> 146: virginica  6.588363 -2.4365684  0.686844853
#> 147: virginica  6.117199  0.6557377  0.003376105
#> 148: virginica  6.577817 -1.3279651  0.771331382
#> 149: virginica  6.364696 -2.1709066  0.600659654
#> 150: virginica  5.878114  1.0534310  0.323595267