From 0691830d2832efc8d8947a116a3f558acb500aa9 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Tue, 26 Aug 2025 19:57:26 +0200 Subject: [PATCH 01/35] first commit - creation off PipeOp File --- .DS_Store | Bin 0 -> 10244 bytes R/PipeOpBasisSplines.R | 36 ++++++++++++++++++++++++++++++++++++ tests/.DS_Store | Bin 0 -> 6148 bytes 3 files changed, 36 insertions(+) create mode 100644 .DS_Store create mode 100644 R/PipeOpBasisSplines.R create mode 100644 tests/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b55fd3589ce30e7bb66466c2878aaef27b218957 GIT binary patch literal 10244 zcmeHMO>7%Q6n>K*Y}W~KngmJ^l2uCx(U9h+LLd~?bsUw5k_0xV9Ac<;m5+DiyK|Gj@^x>&ZVS0A7lrFa=iISi_7^TT{ftD*RNWZ~nz-Pc` zz-Pc`z-QpU!T>(ASqX-P^v^y6J_9}j4F*_#h~mLy+?7W{^3;JRz6C(pgU!5PJ;Ev| zqppm*@<>S3U?IX3r7$J#7J~?LY>&FQxGRr@6y`wO%?EMsOxzs`;djUWqZ|$-E~J0< z8SoisWq|G7dte+&po1gt-^u0CAz4?Z$zrzV+_p?+<@{PSqD1`dIC~39r7g z)%-R43N~n9seWDf3jOMUl>M7|`^Kf;gnu2;O+W99R{iDt^+FCD{OM4bH)z2f9hLyu z$c+EZ3)TQ6q!LZf)VF{M;ya)>( zuRlhl>~#-DX2K>=6-OTGgi~UJAI1>Z=tGX|>OmtiN#7iec6uc$@emTWHaH&tUTf>AhC1>|`anO{Ke=R98CLWInAHoW|^<MBq9K4v`qC06P=Tz-P&RS=+<30gIaHn&X+MKBZ$Wg{mJ4yLB2#-h{HPaKX#51yQw7>k~ne*Ew-6dZ}2 zekzsSHp(V_6`8|AL=M6SrMPaK*{ES8dZFeddbp@=}NAko287S?K)|FU&}_0d!Q+; z_9dy-)mp$yHLTtRi;Z>GXU-l)@ zDlegvtBvG~csWI>8fB@7q>K1k+Ae93E_i#4&zDk^wK6-pbp5RQVKriu}HNh z7?!{kn_hgGVJXi6TV1Lwadko}O!TjxMsKBlWJb<^+DIx2qM1C`3SV2=o{_T-UteBtu;xphg zaCb7$Ey9Y1QOz-NFnKzfqtWCE-8cTO)a>|1*jj~DP@h2f5bsK|8MvI{{R&(*mM8@ literal 0 HcmV?d00001 diff --git a/R/PipeOpBasisSplines.R b/R/PipeOpBasisSplines.R new file mode 100644 index 000000000..e1c30e4d2 --- /dev/null +++ b/R/PipeOpBasisSplines.R @@ -0,0 +1,36 @@ +# DRAFT + +PipeOpBasisSplines = R6Class("PipeOpBasisSplines", + inherit = PipeOpTaskPreproc, + public = list( + initialize = function(id = "basissplines", param_vals = list()) { + ps = ps( + factor = p_fct(levels = c("polynomial", "natural cubic"), default = `placeholder`, tags = "train") # tag basissplines? + ) + ps$values = list() + super$initialize(id = id, param_set = ps, param_vals = param_vals, feature_types = c("numeric", "integer")) + } + ), + private = list( + .train_dt = function(dt, levels, target) { + }, + .predict_dt = function(dt, levels, target) { + } + ) +) + + + + + +task = tsk("mtcars") + +list(task)[[1]]$data() +pop = po("modelmatrix", formula = ~ splines::ns(task$data()$cyl, 2) + splines::ns(task$data()$hp, 2)) +pop$train(list(task))[[1]]$data() + +fit <- lm(mpg ~ splines::ns(cyl, df = 2) + splines::ns(hp, df = 2), data = mtcars) +model.matrix(fit) # this is what we want to get as a result from PipeOpSplineBasis + +as.data.frame(stats::model.matrix(mpg ~ splines::ns(cyl, 2) + splines::ns(task$data()$hp, 2), data = mtcars)) +?model.matrix diff --git a/tests/.DS_Store b/tests/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..476f8b9815c295ab2132595f1864e453dcf45067 GIT binary patch literal 6148 zcmeHKO>Wab6n?J_G)aLtZ33kT$s!x1N>!2AqMA?y5kd(`RVCslIL;)o>UtvENoiNP z0tes#tT+G{V8am*M}RFWc=J;=ZOWEbXrA=ud-HzA_UG}82LP}<>fQse03b~&FqNg| z3=wgmGcu<=DMFNEBrpIMl1jk6nQY@Q3>XG38Uy0nO+x|L(=u% zQph?Z-}lBtm5*OL!@!S|jg9Y?g>&<%OP3eYne5_~tJiW?erY*h$QO&(Z>$t=uHIU0 zTgx5S+wDhu6m}o+fJfzE#9sCzzuOqPo*(v`3450`{6p5ZmQJPCS@+GcYx`hGIfY|~ z9PUZPSSZJ<_Ifc(np1YGZRKJw;z3a3v7h)nY`uyHe7};gy-L{Qbj7jH_Nzk?ig#EP z6VB8$TW%D&VV{)`UI%W61=X<3lZ5XzeUFFg&U12D>eeDAhAeIVlr%!gd3I#nRfYv6 zWdH@+jawRN53EC7YyeXe=o95l zPax_VIe!N9Yfmqp|E-uiFbo(5E*Jx1eXvOdIvOVm<XIfD+VyN)z~W2Bk8?$=HbL%Ym>eu6(aH`3S|j3dOMbe*os$3 brBKWk2BD*IqL4f!=0`x%U>d`~KV{$#oMx{P literal 0 HcmV?d00001 From e091bccac1facb7d3a729c4c21d4277d91e6b6e9 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Wed, 27 Aug 2025 11:54:21 +0200 Subject: [PATCH 02/35] ideas for paste0 impelmented --- .DS_Store | Bin 10244 -> 10244 bytes R/PipeOpBasisSplines.R | 26 +++++++++++++++++++------- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/.DS_Store b/.DS_Store index b55fd3589ce30e7bb66466c2878aaef27b218957..c72441dc51b9f50c6f80ed33baf8af21bd42bda5 100644 GIT binary patch delta 99 zcmZn(XbIRLDZwNqGg(^Vj&!^Le{n{Bxo2{IUO-W5S!QZ^L?)0OoLQARSx8cYsqVyN y8%bF%PGyGx1~8bMEU73d$*9Dr&1k}C%V^K&!5GLG#F)&O!I;UIwRx^&Iv)U}Wf_nF delta 99 zcmZn(XbIRLDZwNyHCbBXj&ww3a(-TLW>spu0Do~tez_-*8&H&5mYG^USx8cYssF)b y8%bF%WrqL;FyNe=EU73dz^KHi&1k}C%V^K&!5GLG#F)&O!I;Tdw0W*%Iv)VA${Du+ diff --git a/R/PipeOpBasisSplines.R b/R/PipeOpBasisSplines.R index e1c30e4d2..a88fde846 100644 --- a/R/PipeOpBasisSplines.R +++ b/R/PipeOpBasisSplines.R @@ -1,27 +1,40 @@ # DRAFT PipeOpBasisSplines = R6Class("PipeOpBasisSplines", - inherit = PipeOpTaskPreproc, + inherit = PipeOpTaskPreprocSimple, public = list( initialize = function(id = "basissplines", param_vals = list()) { ps = ps( - factor = p_fct(levels = c("polynomial", "natural cubic"), default = `placeholder`, tags = "train") # tag basissplines? + factor = p_fct(levels = c("polynomial", "cubic"), default = "polynomial", tags = c("train", "basissplines")), # tag basissplines? + df = p_int(lower = 1, upper = Inf, tags = c("train", "basissplines")) ) ps$values = list() - super$initialize(id = id, param_set = ps, param_vals = param_vals, feature_types = c("numeric", "integer")) + super$initialize(id = id, param_set = ps, param_vals = param_vals) } ), private = list( - .train_dt = function(dt, levels, target) { - }, - .predict_dt = function(dt, levels, target) { + .transform_dt = function(dt, levels) { + browser() + + dt } + # output + # eval(parse(text = paste0("splines::ns(", "dt[[", 3,"]], ", 2, ")"))) ) ) +mlr_pipeops$add("basissplines", PipeOpBasisSplines) + +po = po("basissplines") + +po$train(list(tsk("mtcars"))) +# df als hyperparameterf +# das ziel ist es dass wir diese model.matrix für alle features kriegen +# original features behalten dann feature_union ==> egaluser verantwortung +#splines.cyl.1 task = tsk("mtcars") @@ -33,4 +46,3 @@ fit <- lm(mpg ~ splines::ns(cyl, df = 2) + splines::ns(hp, df = 2), data = mtcar model.matrix(fit) # this is what we want to get as a result from PipeOpSplineBasis as.data.frame(stats::model.matrix(mpg ~ splines::ns(cyl, 2) + splines::ns(task$data()$hp, 2), data = mtcars)) -?model.matrix From 2a9aa3e0baed8edd95f4e8d86ca5020a046816eb Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Tue, 2 Sep 2025 08:59:41 +0100 Subject: [PATCH 03/35] reworking paste in PipeOpBasisSplines.(train-method does not work as of now) --- R/PipeOpBasisSplines.R | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/R/PipeOpBasisSplines.R b/R/PipeOpBasisSplines.R index a88fde846..9550974d9 100644 --- a/R/PipeOpBasisSplines.R +++ b/R/PipeOpBasisSplines.R @@ -15,11 +15,13 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", private = list( .transform_dt = function(dt, levels) { browser() - + single_string = paste0( + "splines::ns(mtcars[[", seq_along(dt), "]] , ", df, ")") + formula = paste(single_string, collapse = " + ") + stats::model.matrix(as.formula(paste(task$target_names , "~", formula)), data = dt) dt } # output - # eval(parse(text = paste0("splines::ns(", "dt[[", 3,"]], ", 2, ")"))) ) ) From 63be01536a39469b1d13430912888805377f4428 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Wed, 3 Sep 2025 20:31:40 +0100 Subject: [PATCH 04/35] BasisSplines PipeOp works in general (playing around with param df here, so it works not exactly) --- R/PipeOpBasisSplines.R | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/R/PipeOpBasisSplines.R b/R/PipeOpBasisSplines.R index 9550974d9..f2e1702a4 100644 --- a/R/PipeOpBasisSplines.R +++ b/R/PipeOpBasisSplines.R @@ -6,7 +6,7 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", initialize = function(id = "basissplines", param_vals = list()) { ps = ps( factor = p_fct(levels = c("polynomial", "cubic"), default = "polynomial", tags = c("train", "basissplines")), # tag basissplines? - df = p_int(lower = 1, upper = Inf, tags = c("train", "basissplines")) + df = p_int(default = 2, lower = 1, upper = Inf, tags = c("train", "basissplines")) ) ps$values = list() super$initialize(id = id, param_set = ps, param_vals = param_vals) @@ -16,10 +16,17 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", .transform_dt = function(dt, levels) { browser() single_string = paste0( - "splines::ns(mtcars[[", seq_along(dt), "]] , ", df, ")") - formula = paste(single_string, collapse = " + ") - stats::model.matrix(as.formula(paste(task$target_names , "~", formula)), data = dt) - dt + "splines::ns(dt[[", seq_along(dt), "]] , ", self$param_set$get_values()$df, ")") + string = paste(" ~ ", paste(single_string, collapse = " + ")) + result = as.data.frame(stats::model.matrix(formula(string), data = dt)) + k = 1 + for (j in colnames(dt)) { + for (i in seq_len(df)) { + colnames(result)[k + 1] = paste0("splines.", j, ".", i) + k = k + 1 + } + } + result } # output ) @@ -28,7 +35,7 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", mlr_pipeops$add("basissplines", PipeOpBasisSplines) po = po("basissplines") - +sel_cyl = selector_grep("cyl|disp|am") po$train(list(tsk("mtcars"))) # df als hyperparameterf @@ -41,7 +48,10 @@ po$train(list(tsk("mtcars"))) task = tsk("mtcars") list(task)[[1]]$data() -pop = po("modelmatrix", formula = ~ splines::ns(task$data()$cyl, 2) + splines::ns(task$data()$hp, 2)) +pop = po("modelmatrix", formula = ~ splines::ns(task$data()$cyl, 2) + splines::ns(task$data()$hp, 2) + + splines::ns(task$data()$disp, 2) + splines::ns(task$data()$drat, 2) + splines::ns(task$data()$wt, 2) + + splines::ns(task$data()$qsec, 2) + splines::ns(task$data()$vs, 2) + splines::ns(task$data()$am, 2) + + splines::ns(task$data()$gear, 2) + splines::ns(task$data()$carb, 2)) pop$train(list(task))[[1]]$data() fit <- lm(mpg ~ splines::ns(cyl, df = 2) + splines::ns(hp, df = 2), data = mtcars) From 7bd06761a020b5c3c4d8e23fde4bd3c7987e2258 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Wed, 3 Sep 2025 21:01:56 +0100 Subject: [PATCH 05/35] hp implemented via init --- R/PipeOpBasisSplines.R | 44 ++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/R/PipeOpBasisSplines.R b/R/PipeOpBasisSplines.R index f2e1702a4..332d65183 100644 --- a/R/PipeOpBasisSplines.R +++ b/R/PipeOpBasisSplines.R @@ -4,19 +4,25 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", inherit = PipeOpTaskPreprocSimple, public = list( initialize = function(id = "basissplines", param_vals = list()) { + #browser() ps = ps( - factor = p_fct(levels = c("polynomial", "cubic"), default = "polynomial", tags = c("train", "basissplines")), # tag basissplines? - df = p_int(default = 2, lower = 1, upper = Inf, tags = c("train", "basissplines")) + factor = p_fct(levels = c("polynomial", "cubic"), init = "polynomial", tags = c("train", "basissplines")), # tag basissplines? + df = p_int(init = 2, lower = 1, upper = Inf, tags = c("train", "basissplines")) ) - ps$values = list() - super$initialize(id = id, param_set = ps, param_vals = param_vals) + super$initialize(id = id, param_set = ps, param_vals = param_vals) } ), private = list( .transform_dt = function(dt, levels) { browser() - single_string = paste0( - "splines::ns(dt[[", seq_along(dt), "]] , ", self$param_set$get_values()$df, ")") + if (self$param_set$get_values()$factor == "polynomial") { + single_string = + invoke(.f = paste0, .args = list("splines::bs(dt[[", seq_along(dt), "]] , ", self$param_set$get_values()$df, ")")) + } + else { + single_string = + invoke(.f = paste0, .args = list("splines::ns(dt[[", seq_along(dt), "]] , ", self$param_set$get_values()$df, ")")) + } string = paste(" ~ ", paste(single_string, collapse = " + ")) result = as.data.frame(stats::model.matrix(formula(string), data = dt)) k = 1 @@ -34,9 +40,9 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", mlr_pipeops$add("basissplines", PipeOpBasisSplines) -po = po("basissplines") -sel_cyl = selector_grep("cyl|disp|am") -po$train(list(tsk("mtcars"))) +# po = po("basissplines") +# sel_cyl = selector_grep("cyl|disp|am") +# po$train(list(tsk("mtcars"))) # df als hyperparameterf # das ziel ist es dass wir diese model.matrix für alle features kriegen @@ -45,16 +51,16 @@ po$train(list(tsk("mtcars"))) #splines.cyl.1 -task = tsk("mtcars") +# task = tsk("mtcars") -list(task)[[1]]$data() -pop = po("modelmatrix", formula = ~ splines::ns(task$data()$cyl, 2) + splines::ns(task$data()$hp, 2) + - splines::ns(task$data()$disp, 2) + splines::ns(task$data()$drat, 2) + splines::ns(task$data()$wt, 2) + - splines::ns(task$data()$qsec, 2) + splines::ns(task$data()$vs, 2) + splines::ns(task$data()$am, 2) + - splines::ns(task$data()$gear, 2) + splines::ns(task$data()$carb, 2)) -pop$train(list(task))[[1]]$data() +# list(task)[[1]]$data() +# pop = po("modelmatrix", formula = ~ splines::ns(task$data()$cyl, 2) + splines::ns(task$data()$hp, 2) + +# splines::ns(task$data()$disp, 2) + splines::ns(task$data()$drat, 2) + splines::ns(task$data()$wt, 2) + +# splines::ns(task$data()$qsec, 2) + splines::ns(task$data()$vs, 2) + splines::ns(task$data()$am, 2) + +# splines::ns(task$data()$gear, 2) + splines::ns(task$data()$carb, 2)) +# pop$train(list(task))[[1]]$data() -fit <- lm(mpg ~ splines::ns(cyl, df = 2) + splines::ns(hp, df = 2), data = mtcars) -model.matrix(fit) # this is what we want to get as a result from PipeOpSplineBasis +# fit <- lm(mpg ~ splines::ns(cyl, df = 2) + splines::ns(hp, df = 2), data = mtcars) +# model.matrix(fit) # this is what we want to get as a result from PipeOpSplineBasis -as.data.frame(stats::model.matrix(mpg ~ splines::ns(cyl, 2) + splines::ns(task$data()$hp, 2), data = mtcars)) +# as.data.frame(stats::model.matrix(mpg ~ splines::ns(cyl, 2) + splines::ns(task$data()$hp, 2), data = mtcars)) From aaa8950968c948bdb9f764bc69c3fe829fe5e3e4 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Fri, 5 Sep 2025 08:53:43 +0100 Subject: [PATCH 06/35] PipeOpBasisSplines working version --- R/PipeOpBasisSplines.R | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/R/PipeOpBasisSplines.R b/R/PipeOpBasisSplines.R index 332d65183..75a1e884a 100644 --- a/R/PipeOpBasisSplines.R +++ b/R/PipeOpBasisSplines.R @@ -15,34 +15,34 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", private = list( .transform_dt = function(dt, levels) { browser() - if (self$param_set$get_values()$factor == "polynomial") { + pv = self$param_set$get_values(tags = "train") + if (pv$factor == "polynomial") { single_string = - invoke(.f = paste0, .args = list("splines::bs(dt[[", seq_along(dt), "]] , ", self$param_set$get_values()$df, ")")) + invoke(.f = paste0, .args = list("splines::bs(dt[[", seq_along(dt), "]] , ", pv$df, ")")) } else { single_string = - invoke(.f = paste0, .args = list("splines::ns(dt[[", seq_along(dt), "]] , ", self$param_set$get_values()$df, ")")) + invoke(.f = paste0, .args = list("splines::ns(dt[[", seq_along(dt), "]] , ", pv$df, ")")) } string = paste(" ~ ", paste(single_string, collapse = " + ")) result = as.data.frame(stats::model.matrix(formula(string), data = dt)) k = 1 for (j in colnames(dt)) { - for (i in seq_len(df)) { + for (i in seq_len(pv$df)) { colnames(result)[k + 1] = paste0("splines.", j, ".", i) k = k + 1 } } result } - # output ) ) mlr_pipeops$add("basissplines", PipeOpBasisSplines) -# po = po("basissplines") +# po = po("basissplines", df = 3) # sel_cyl = selector_grep("cyl|disp|am") -# po$train(list(tsk("mtcars"))) +# po$train(list(tsk("mtcars")))[[1]]$data() # df als hyperparameterf # das ziel ist es dass wir diese model.matrix für alle features kriegen @@ -60,6 +60,14 @@ mlr_pipeops$add("basissplines", PipeOpBasisSplines) # splines::ns(task$data()$gear, 2) + splines::ns(task$data()$carb, 2)) # pop$train(list(task))[[1]]$data() +# pob = po("modelmatrix", formula = ~ splines::bs(task$data()$cyl, 2) + splines::bs(task$data()$hp, 2) + +# splines::bs(task$data()$disp, 2) + splines::bs(task$data()$drat, 2) + splines::bs(task$data()$wt, 2) + +# splines::bs(task$data()$qsec, 2) + splines::bs(task$data()$vs, 2) + splines::bs(task$data()$am, 2) + +# splines::bs(task$data()$gear, 2) + splines::bs(task$data()$carb, 2)) + +# pob$train(list(task))[[1]]$data() + + # fit <- lm(mpg ~ splines::ns(cyl, df = 2) + splines::ns(hp, df = 2), data = mtcars) # model.matrix(fit) # this is what we want to get as a result from PipeOpSplineBasis From c0acfe5e4a8e57cf8aea85e5869bcb12b2bfc3c9 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Fri, 5 Sep 2025 20:30:14 +0100 Subject: [PATCH 07/35] added PipeOpBasisSplines.R in DESCRIPTION-file --- DESCRIPTION | 1 + 1 file changed, 1 insertion(+) diff --git a/DESCRIPTION b/DESCRIPTION index ebd01913c..983e1ad69 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -128,6 +128,7 @@ Collate: 'NO_OP.R' 'PipeOpTaskPreproc.R' 'PipeOpADAS.R' + 'PipeOpBasisSplines.R' 'PipeOpBLSmote.R' 'PipeOpBoxCox.R' 'PipeOpBranch.R' From b862ea6ef50c60c0f64efeec1d98f254b77a1229 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Fri, 5 Sep 2025 21:11:52 +0100 Subject: [PATCH 08/35] revised column-renaming of the result added documentation --- R/PipeOpBasisSplines.R | 69 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 6 deletions(-) diff --git a/R/PipeOpBasisSplines.R b/R/PipeOpBasisSplines.R index 75a1e884a..ac755360c 100644 --- a/R/PipeOpBasisSplines.R +++ b/R/PipeOpBasisSplines.R @@ -1,4 +1,60 @@ -# DRAFT +#' @title Transforms Columns using Splines Methods by Constructing a Model Matrix +#' +#' @usage NULL +#' @name mlr_pipeops_basissplines +#' @format [`R6Class`][R6::R6Class] object inheriting from [`PipeOpTaskPreprocSimple`]/[`PipeOpTaskPreproc`]/[`PipeOp`]. +#' +#' @description +#' Transforms Columns using Splines Methods by Constructing a Model Matrix. +#' +#' @section Construction: +#' ``` +#' po("basissplines", param_vals = list()) +#' ``` +#' +#' * `id` :: `character(1)`\cr +#' Identifier of resulting object, default `"basissplines"`. +#' * `param_vals` :: named `list`\cr +#' List of hyperparameter settings, overwriting the hyperparameter settings that would otherwise be set during construction. Default `list()`. +#' +#' @section Input and Output Channels: +#' Input and output channels are inherited from [`PipeOpTaskPreproc`]. +#' +#' The output is the input [`Task`][mlr3::Task] with the selected columns transformed according to the specified Splines Method. +#' +#' @section State: +#' The `$state` is a named `list` with the `$state` elements inherited from [`PipeOpTaskPreproc`]. +#' +#' @section Parameters: +#' The parameters are the parameters inherited from [`PipeOpTaskPreproc`], as well as: +#' * `hp` :: `CHARACTER` \cr +#' Number of bins to create. Default is `2`. +#' * `df` :: `INTEGER` \cr +#' Number of bins to create. Default is `2` +#' +#' @section Internals: +#' For creating the Splines uses the [`splines::bs`]/[`splines::bn`] function. +#' Uses the [`stats::model.matrix()`] function. +#' +#' @section Fields: +#' Only fields inherited from [`PipeOp`]. +#' +#' @section Methods: +#' Only methods inherited from [`PipeOpTaskPreprocSimple`]/[`PipeOpTaskPreproc`]/[`PipeOp`]. +#' +#' @examples +#' library("mlr3") +#' +#' task = tsk("iris") +#' pop = po("basissplines") +#' +#' pop$train(list(task))[[1]]$data() +#' +#' pop$state +#' @family PipeOps +#' @template seealso_pipeopslist +#' @include PipeOpTaskPreproc.R +#' @export PipeOpBasisSplines = R6Class("PipeOpBasisSplines", inherit = PipeOpTaskPreprocSimple, @@ -7,14 +63,14 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", #browser() ps = ps( factor = p_fct(levels = c("polynomial", "cubic"), init = "polynomial", tags = c("train", "basissplines")), # tag basissplines? - df = p_int(init = 2, lower = 1, upper = Inf, tags = c("train", "basissplines")) + df = p_int(init = 3, lower = 1, upper = Inf, tags = c("train", "basissplines")) ) super$initialize(id = id, param_set = ps, param_vals = param_vals) } ), private = list( .transform_dt = function(dt, levels) { - browser() + #browser() pv = self$param_set$get_values(tags = "train") if (pv$factor == "polynomial") { single_string = @@ -26,10 +82,11 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", } string = paste(" ~ ", paste(single_string, collapse = " + ")) result = as.data.frame(stats::model.matrix(formula(string), data = dt)) + max_df = as.numeric(max(regmatches(colnames(result), regexpr("[0-9]+$", colnames(result))))) k = 1 for (j in colnames(dt)) { - for (i in seq_len(pv$df)) { - colnames(result)[k + 1] = paste0("splines.", j, ".", i) + for (i in seq_len(max_df)) { + colnames(result)[k + 1] = paste0("splines.", j, ".", tail(strsplit(colnames(result)[[k + 1]], "")[[1]], 1)) k = k + 1 } } @@ -40,7 +97,7 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", mlr_pipeops$add("basissplines", PipeOpBasisSplines) -# po = po("basissplines", df = 3) +# po = po("basissplines", df = 2) # sel_cyl = selector_grep("cyl|disp|am") # po$train(list(tsk("mtcars")))[[1]]$data() From 250e4fe778a1646fad7a0f4f0fb0f282c3007682 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Sun, 7 Sep 2025 08:18:34 +0100 Subject: [PATCH 09/35] updated DESCRIPTION; NAMESPACE ran devtools::check() --- DESCRIPTION | 5 +- NAMESPACE | 1 + R/PipeOpBasisSplines.R | 17 ++- man/PipeOp.Rd | 1 + man/PipeOpEncodePL.Rd | 1 + man/PipeOpEnsemble.Rd | 1 + man/PipeOpImpute.Rd | 1 + man/PipeOpTargetTrafo.Rd | 1 + man/PipeOpTaskPreproc.Rd | 1 + man/PipeOpTaskPreprocSimple.Rd | 1 + man/mlr_pipeops.Rd | 1 + man/mlr_pipeops_adas.Rd | 1 + man/mlr_pipeops_basissplines.Rd | 166 +++++++++++++++++++++++ man/mlr_pipeops_blsmote.Rd | 1 + man/mlr_pipeops_boxcox.Rd | 1 + man/mlr_pipeops_branch.Rd | 1 + man/mlr_pipeops_chunk.Rd | 1 + man/mlr_pipeops_classbalancing.Rd | 1 + man/mlr_pipeops_classifavg.Rd | 1 + man/mlr_pipeops_classweights.Rd | 1 + man/mlr_pipeops_colapply.Rd | 1 + man/mlr_pipeops_collapsefactors.Rd | 1 + man/mlr_pipeops_colroles.Rd | 1 + man/mlr_pipeops_copy.Rd | 1 + man/mlr_pipeops_datefeatures.Rd | 1 + man/mlr_pipeops_decode.Rd | 1 + man/mlr_pipeops_encode.Rd | 1 + man/mlr_pipeops_encodeimpact.Rd | 1 + man/mlr_pipeops_encodelmer.Rd | 1 + man/mlr_pipeops_encodeplquantiles.Rd | 1 + man/mlr_pipeops_encodepltree.Rd | 1 + man/mlr_pipeops_featureunion.Rd | 1 + man/mlr_pipeops_filter.Rd | 1 + man/mlr_pipeops_fixfactors.Rd | 1 + man/mlr_pipeops_histbin.Rd | 1 + man/mlr_pipeops_ica.Rd | 1 + man/mlr_pipeops_imputeconstant.Rd | 1 + man/mlr_pipeops_imputehist.Rd | 1 + man/mlr_pipeops_imputelearner.Rd | 1 + man/mlr_pipeops_imputemean.Rd | 1 + man/mlr_pipeops_imputemedian.Rd | 1 + man/mlr_pipeops_imputemode.Rd | 1 + man/mlr_pipeops_imputeoor.Rd | 1 + man/mlr_pipeops_imputesample.Rd | 1 + man/mlr_pipeops_kernelpca.Rd | 1 + man/mlr_pipeops_learner.Rd | 1 + man/mlr_pipeops_learner_pi_cvplus.Rd | 1 + man/mlr_pipeops_learner_quantiles.Rd | 1 + man/mlr_pipeops_missind.Rd | 1 + man/mlr_pipeops_modelmatrix.Rd | 1 + man/mlr_pipeops_multiplicityexply.Rd | 1 + man/mlr_pipeops_multiplicityimply.Rd | 1 + man/mlr_pipeops_mutate.Rd | 1 + man/mlr_pipeops_nearmiss.Rd | 1 + man/mlr_pipeops_nmf.Rd | 1 + man/mlr_pipeops_nop.Rd | 1 + man/mlr_pipeops_ovrsplit.Rd | 1 + man/mlr_pipeops_ovrunite.Rd | 1 + man/mlr_pipeops_pca.Rd | 5 +- man/mlr_pipeops_proxy.Rd | 1 + man/mlr_pipeops_quantilebin.Rd | 1 + man/mlr_pipeops_randomprojection.Rd | 1 + man/mlr_pipeops_randomresponse.Rd | 1 + man/mlr_pipeops_regravg.Rd | 1 + man/mlr_pipeops_removeconstants.Rd | 1 + man/mlr_pipeops_renamecolumns.Rd | 1 + man/mlr_pipeops_replicate.Rd | 1 + man/mlr_pipeops_rowapply.Rd | 1 + man/mlr_pipeops_scale.Rd | 1 + man/mlr_pipeops_scalemaxabs.Rd | 1 + man/mlr_pipeops_scalerange.Rd | 1 + man/mlr_pipeops_select.Rd | 1 + man/mlr_pipeops_smote.Rd | 1 + man/mlr_pipeops_smotenc.Rd | 1 + man/mlr_pipeops_spatialsign.Rd | 1 + man/mlr_pipeops_subsample.Rd | 1 + man/mlr_pipeops_targetinvert.Rd | 1 + man/mlr_pipeops_targetmutate.Rd | 1 + man/mlr_pipeops_targettrafoscalerange.Rd | 1 + man/mlr_pipeops_textvectorizer.Rd | 1 + man/mlr_pipeops_threshold.Rd | 1 + man/mlr_pipeops_tomek.Rd | 1 + man/mlr_pipeops_tunethreshold.Rd | 1 + man/mlr_pipeops_unbranch.Rd | 1 + man/mlr_pipeops_updatetarget.Rd | 1 + man/mlr_pipeops_vtreat.Rd | 1 + man/mlr_pipeops_yeojohnson.Rd | 1 + 87 files changed, 265 insertions(+), 11 deletions(-) create mode 100644 man/mlr_pipeops_basissplines.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 983e1ad69..346dddc49 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -101,7 +101,8 @@ Suggests: future, htmlwidgets, ranger, - themis + themis, + splines ByteCompile: true Encoding: UTF-8 Config/testthat/edition: 3 @@ -128,8 +129,8 @@ Collate: 'NO_OP.R' 'PipeOpTaskPreproc.R' 'PipeOpADAS.R' - 'PipeOpBasisSplines.R' 'PipeOpBLSmote.R' + 'PipeOpBasisSplines.R' 'PipeOpBoxCox.R' 'PipeOpBranch.R' 'PipeOpChunk.R' diff --git a/NAMESPACE b/NAMESPACE index 1a2ae274e..73091720f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -99,6 +99,7 @@ export(NO_OP) export(PipeOp) export(PipeOpADAS) export(PipeOpBLSmote) +export(PipeOpBasisSplines) export(PipeOpBoxCox) export(PipeOpBranch) export(PipeOpChunk) diff --git a/R/PipeOpBasisSplines.R b/R/PipeOpBasisSplines.R index ac755360c..418c83cda 100644 --- a/R/PipeOpBasisSplines.R +++ b/R/PipeOpBasisSplines.R @@ -27,13 +27,16 @@ #' #' @section Parameters: #' The parameters are the parameters inherited from [`PipeOpTaskPreproc`], as well as: -#' * `hp` :: `CHARACTER` \cr -#' Number of bins to create. Default is `2`. -#' * `df` :: `INTEGER` \cr -#' Number of bins to create. Default is `2` +#' * `hp` :: `character(1)` \cr +#' "Polynomial" when polynomial splines are applied [`splines::bs`] or +#' "Cubic" when natural cubic splines are applied [`splines::bs`]. +#' Default is "polynomial". +#' * `df` :: `integer(1)` \cr +#' Number of degrees of freedom for calculation of splines basis matrix. +#' Default is NULL. #' #' @section Internals: -#' For creating the Splines uses the [`splines::bs`]/[`splines::bn`] function. +#' For creating the Splines uses the [`splines::bs`]/[`splines::ns`] function. #' Uses the [`stats::model.matrix()`] function. #' #' @section Fields: @@ -63,7 +66,7 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", #browser() ps = ps( factor = p_fct(levels = c("polynomial", "cubic"), init = "polynomial", tags = c("train", "basissplines")), # tag basissplines? - df = p_int(init = 3, lower = 1, upper = Inf, tags = c("train", "basissplines")) + df = p_int(init = 1, lower = 1, upper = Inf, tags = c("train", "basissplines")) ) super$initialize(id = id, param_set = ps, param_vals = param_vals) } @@ -97,7 +100,7 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", mlr_pipeops$add("basissplines", PipeOpBasisSplines) -# po = po("basissplines", df = 2) +# po = po("basissplines") # sel_cyl = selector_grep("cyl|disp|am") # po$train(list(tsk("mtcars")))[[1]]$data() diff --git a/man/PipeOp.Rd b/man/PipeOp.Rd index f5921c3a0..30ead24b3 100644 --- a/man/PipeOp.Rd +++ b/man/PipeOp.Rd @@ -286,6 +286,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/PipeOpEncodePL.Rd b/man/PipeOpEncodePL.Rd index 4407d32a0..d2192657a 100644 --- a/man/PipeOpEncodePL.Rd +++ b/man/PipeOpEncodePL.Rd @@ -110,6 +110,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/PipeOpEnsemble.Rd b/man/PipeOpEnsemble.Rd index 415859086..8649e8ec6 100644 --- a/man/PipeOpEnsemble.Rd +++ b/man/PipeOpEnsemble.Rd @@ -107,6 +107,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/PipeOpImpute.Rd b/man/PipeOpImpute.Rd index b8a2aa73f..fe397c494 100644 --- a/man/PipeOpImpute.Rd +++ b/man/PipeOpImpute.Rd @@ -173,6 +173,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/PipeOpTargetTrafo.Rd b/man/PipeOpTargetTrafo.Rd index 99d957a39..73b30fa8a 100644 --- a/man/PipeOpTargetTrafo.Rd +++ b/man/PipeOpTargetTrafo.Rd @@ -146,6 +146,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/PipeOpTaskPreproc.Rd b/man/PipeOpTaskPreproc.Rd index 75afdab08..a31f62dc1 100644 --- a/man/PipeOpTaskPreproc.Rd +++ b/man/PipeOpTaskPreproc.Rd @@ -203,6 +203,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/PipeOpTaskPreprocSimple.Rd b/man/PipeOpTaskPreprocSimple.Rd index 9463f488d..91eb94dc1 100644 --- a/man/PipeOpTaskPreprocSimple.Rd +++ b/man/PipeOpTaskPreprocSimple.Rd @@ -146,6 +146,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreproc}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops.Rd b/man/mlr_pipeops.Rd index c41449bbe..ef26a86dd 100644 --- a/man/mlr_pipeops.Rd +++ b/man/mlr_pipeops.Rd @@ -98,6 +98,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreproc}}, \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_adas.Rd b/man/mlr_pipeops_adas.Rd index 33a094003..27c549407 100644 --- a/man/mlr_pipeops_adas.Rd +++ b/man/mlr_pipeops_adas.Rd @@ -107,6 +107,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreproc}}, \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_basissplines.Rd b/man/mlr_pipeops_basissplines.Rd new file mode 100644 index 000000000..efa562fb6 --- /dev/null +++ b/man/mlr_pipeops_basissplines.Rd @@ -0,0 +1,166 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/PipeOpBasisSplines.R +\name{mlr_pipeops_basissplines} +\alias{mlr_pipeops_basissplines} +\alias{PipeOpBasisSplines} +\title{Transforms Columns using Splines Methods by Constructing a Model Matrix} +\format{ +\code{\link[R6:R6Class]{R6Class}} object inheriting from \code{\link{PipeOpTaskPreprocSimple}}/\code{\link{PipeOpTaskPreproc}}/\code{\link{PipeOp}}. +} +\description{ +Transforms Columns using Splines Methods by Constructing a Model Matrix. +} +\section{Construction}{ + + +\if{html}{\out{
}}\preformatted{po("basissplines", param_vals = list()) +}\if{html}{\out{
}} +\itemize{ +\item \code{id} :: \code{character(1)}\cr +Identifier of resulting object, default \code{"basissplines"}. +\item \code{param_vals} :: named \code{list}\cr +List of hyperparameter settings, overwriting the hyperparameter settings that would otherwise be set during construction. Default \code{list()}. +} +} + +\section{Input and Output Channels}{ + +Input and output channels are inherited from \code{\link{PipeOpTaskPreproc}}. + +The output is the input \code{\link[mlr3:Task]{Task}} with the selected columns transformed according to the specified Splines Method. +} + +\section{State}{ + +The \verb{$state} is a named \code{list} with the \verb{$state} elements inherited from \code{\link{PipeOpTaskPreproc}}. +} + +\section{Parameters}{ + +The parameters are the parameters inherited from \code{\link{PipeOpTaskPreproc}}, as well as: +\itemize{ +\item \code{hp} :: \code{character(1)} \cr +"Polynomial" when polynomial splines are applied \code{\link[splines:bs]{splines::bs}} or +"Cubic" when natural cubic splines are applied \code{\link[splines:bs]{splines::bs}}. +Default is "polynomial". +\item \code{df} :: \code{integer(1)} \cr +Number of degrees of freedom for calculation of splines basis matrix. +Default is NULL. +} +} + +\section{Internals}{ + +For creating the Splines uses the \code{\link[splines:bs]{splines::bs}}/\code{\link[splines:ns]{splines::ns}} function. +Uses the \code{\link[stats:model.matrix]{stats::model.matrix()}} function. +} + +\section{Fields}{ + +Only fields inherited from \code{\link{PipeOp}}. +} + +\section{Methods}{ + +Only methods inherited from \code{\link{PipeOpTaskPreprocSimple}}/\code{\link{PipeOpTaskPreproc}}/\code{\link{PipeOp}}. +} + +\examples{ +library("mlr3") + +task = tsk("iris") +pop = po("basissplines") + +pop$train(list(task))[[1]]$data() + +pop$state +} +\seealso{ +https://mlr-org.com/pipeops.html + +Other PipeOps: +\code{\link{PipeOp}}, +\code{\link{PipeOpEncodePL}}, +\code{\link{PipeOpEnsemble}}, +\code{\link{PipeOpImpute}}, +\code{\link{PipeOpTargetTrafo}}, +\code{\link{PipeOpTaskPreproc}}, +\code{\link{PipeOpTaskPreprocSimple}}, +\code{\link{mlr_pipeops}}, +\code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_blsmote}}, +\code{\link{mlr_pipeops_boxcox}}, +\code{\link{mlr_pipeops_branch}}, +\code{\link{mlr_pipeops_chunk}}, +\code{\link{mlr_pipeops_classbalancing}}, +\code{\link{mlr_pipeops_classifavg}}, +\code{\link{mlr_pipeops_classweights}}, +\code{\link{mlr_pipeops_colapply}}, +\code{\link{mlr_pipeops_collapsefactors}}, +\code{\link{mlr_pipeops_colroles}}, +\code{\link{mlr_pipeops_copy}}, +\code{\link{mlr_pipeops_datefeatures}}, +\code{\link{mlr_pipeops_decode}}, +\code{\link{mlr_pipeops_encode}}, +\code{\link{mlr_pipeops_encodeimpact}}, +\code{\link{mlr_pipeops_encodelmer}}, +\code{\link{mlr_pipeops_encodeplquantiles}}, +\code{\link{mlr_pipeops_encodepltree}}, +\code{\link{mlr_pipeops_featureunion}}, +\code{\link{mlr_pipeops_filter}}, +\code{\link{mlr_pipeops_fixfactors}}, +\code{\link{mlr_pipeops_histbin}}, +\code{\link{mlr_pipeops_ica}}, +\code{\link{mlr_pipeops_imputeconstant}}, +\code{\link{mlr_pipeops_imputehist}}, +\code{\link{mlr_pipeops_imputelearner}}, +\code{\link{mlr_pipeops_imputemean}}, +\code{\link{mlr_pipeops_imputemedian}}, +\code{\link{mlr_pipeops_imputemode}}, +\code{\link{mlr_pipeops_imputeoor}}, +\code{\link{mlr_pipeops_imputesample}}, +\code{\link{mlr_pipeops_kernelpca}}, +\code{\link{mlr_pipeops_learner}}, +\code{\link{mlr_pipeops_learner_pi_cvplus}}, +\code{\link{mlr_pipeops_learner_quantiles}}, +\code{\link{mlr_pipeops_missind}}, +\code{\link{mlr_pipeops_modelmatrix}}, +\code{\link{mlr_pipeops_multiplicityexply}}, +\code{\link{mlr_pipeops_multiplicityimply}}, +\code{\link{mlr_pipeops_mutate}}, +\code{\link{mlr_pipeops_nearmiss}}, +\code{\link{mlr_pipeops_nmf}}, +\code{\link{mlr_pipeops_nop}}, +\code{\link{mlr_pipeops_ovrsplit}}, +\code{\link{mlr_pipeops_ovrunite}}, +\code{\link{mlr_pipeops_pca}}, +\code{\link{mlr_pipeops_proxy}}, +\code{\link{mlr_pipeops_quantilebin}}, +\code{\link{mlr_pipeops_randomprojection}}, +\code{\link{mlr_pipeops_randomresponse}}, +\code{\link{mlr_pipeops_regravg}}, +\code{\link{mlr_pipeops_removeconstants}}, +\code{\link{mlr_pipeops_renamecolumns}}, +\code{\link{mlr_pipeops_replicate}}, +\code{\link{mlr_pipeops_rowapply}}, +\code{\link{mlr_pipeops_scale}}, +\code{\link{mlr_pipeops_scalemaxabs}}, +\code{\link{mlr_pipeops_scalerange}}, +\code{\link{mlr_pipeops_select}}, +\code{\link{mlr_pipeops_smote}}, +\code{\link{mlr_pipeops_smotenc}}, +\code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_subsample}}, +\code{\link{mlr_pipeops_targetinvert}}, +\code{\link{mlr_pipeops_targetmutate}}, +\code{\link{mlr_pipeops_targettrafoscalerange}}, +\code{\link{mlr_pipeops_textvectorizer}}, +\code{\link{mlr_pipeops_threshold}}, +\code{\link{mlr_pipeops_tomek}}, +\code{\link{mlr_pipeops_tunethreshold}}, +\code{\link{mlr_pipeops_unbranch}}, +\code{\link{mlr_pipeops_updatetarget}}, +\code{\link{mlr_pipeops_vtreat}}, +\code{\link{mlr_pipeops_yeojohnson}} +} +\concept{PipeOps} diff --git a/man/mlr_pipeops_blsmote.Rd b/man/mlr_pipeops_blsmote.Rd index 08c6b0d8d..59ff3b9f0 100644 --- a/man/mlr_pipeops_blsmote.Rd +++ b/man/mlr_pipeops_blsmote.Rd @@ -113,6 +113,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, \code{\link{mlr_pipeops_chunk}}, diff --git a/man/mlr_pipeops_boxcox.Rd b/man/mlr_pipeops_boxcox.Rd index 1b672f56c..cf498a7d7 100644 --- a/man/mlr_pipeops_boxcox.Rd +++ b/man/mlr_pipeops_boxcox.Rd @@ -97,6 +97,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_branch}}, \code{\link{mlr_pipeops_chunk}}, diff --git a/man/mlr_pipeops_branch.Rd b/man/mlr_pipeops_branch.Rd index db449402b..bbc3e3fa8 100644 --- a/man/mlr_pipeops_branch.Rd +++ b/man/mlr_pipeops_branch.Rd @@ -110,6 +110,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_chunk}}, diff --git a/man/mlr_pipeops_chunk.Rd b/man/mlr_pipeops_chunk.Rd index c82b399bf..378bab125 100644 --- a/man/mlr_pipeops_chunk.Rd +++ b/man/mlr_pipeops_chunk.Rd @@ -89,6 +89,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_classbalancing.Rd b/man/mlr_pipeops_classbalancing.Rd index fd95b8cdc..9a3aaa6d7 100644 --- a/man/mlr_pipeops_classbalancing.Rd +++ b/man/mlr_pipeops_classbalancing.Rd @@ -131,6 +131,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_classifavg.Rd b/man/mlr_pipeops_classifavg.Rd index beb232e55..84a146c11 100644 --- a/man/mlr_pipeops_classifavg.Rd +++ b/man/mlr_pipeops_classifavg.Rd @@ -104,6 +104,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_classweights.Rd b/man/mlr_pipeops_classweights.Rd index 678b0c4fa..e90ea90c1 100644 --- a/man/mlr_pipeops_classweights.Rd +++ b/man/mlr_pipeops_classweights.Rd @@ -109,6 +109,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_colapply.Rd b/man/mlr_pipeops_colapply.Rd index 11b1280c4..743f9cc25 100644 --- a/man/mlr_pipeops_colapply.Rd +++ b/man/mlr_pipeops_colapply.Rd @@ -119,6 +119,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_collapsefactors.Rd b/man/mlr_pipeops_collapsefactors.Rd index 60044c35b..4a938e933 100644 --- a/man/mlr_pipeops_collapsefactors.Rd +++ b/man/mlr_pipeops_collapsefactors.Rd @@ -122,6 +122,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_colroles.Rd b/man/mlr_pipeops_colroles.Rd index 6fe93c31a..a377755bc 100644 --- a/man/mlr_pipeops_colroles.Rd +++ b/man/mlr_pipeops_colroles.Rd @@ -100,6 +100,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_copy.Rd b/man/mlr_pipeops_copy.Rd index be1a51822..d1ddf06c4 100644 --- a/man/mlr_pipeops_copy.Rd +++ b/man/mlr_pipeops_copy.Rd @@ -105,6 +105,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_datefeatures.Rd b/man/mlr_pipeops_datefeatures.Rd index 8fd0d42f8..4a5ba2efb 100644 --- a/man/mlr_pipeops_datefeatures.Rd +++ b/man/mlr_pipeops_datefeatures.Rd @@ -128,6 +128,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_decode.Rd b/man/mlr_pipeops_decode.Rd index 76b08510b..2b9026f42 100644 --- a/man/mlr_pipeops_decode.Rd +++ b/man/mlr_pipeops_decode.Rd @@ -165,6 +165,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_encode.Rd b/man/mlr_pipeops_encode.Rd index bc286e459..68a488fd3 100644 --- a/man/mlr_pipeops_encode.Rd +++ b/man/mlr_pipeops_encode.Rd @@ -126,6 +126,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_encodeimpact.Rd b/man/mlr_pipeops_encodeimpact.Rd index 33776ca10..c0b9204d2 100644 --- a/man/mlr_pipeops_encodeimpact.Rd +++ b/man/mlr_pipeops_encodeimpact.Rd @@ -110,6 +110,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_encodelmer.Rd b/man/mlr_pipeops_encodelmer.Rd index 33cb75759..35031c4b6 100644 --- a/man/mlr_pipeops_encodelmer.Rd +++ b/man/mlr_pipeops_encodelmer.Rd @@ -122,6 +122,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_encodeplquantiles.Rd b/man/mlr_pipeops_encodeplquantiles.Rd index 700611995..1b13e3e9f 100644 --- a/man/mlr_pipeops_encodeplquantiles.Rd +++ b/man/mlr_pipeops_encodeplquantiles.Rd @@ -115,6 +115,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_encodepltree.Rd b/man/mlr_pipeops_encodepltree.Rd index 2053eb2b5..692a421d9 100644 --- a/man/mlr_pipeops_encodepltree.Rd +++ b/man/mlr_pipeops_encodepltree.Rd @@ -130,6 +130,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_featureunion.Rd b/man/mlr_pipeops_featureunion.Rd index de03f667a..39cab3958 100644 --- a/man/mlr_pipeops_featureunion.Rd +++ b/man/mlr_pipeops_featureunion.Rd @@ -123,6 +123,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_filter.Rd b/man/mlr_pipeops_filter.Rd index 308e66011..1aa6d0aa1 100644 --- a/man/mlr_pipeops_filter.Rd +++ b/man/mlr_pipeops_filter.Rd @@ -152,6 +152,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_fixfactors.Rd b/man/mlr_pipeops_fixfactors.Rd index 2eba59b67..02facdfc0 100644 --- a/man/mlr_pipeops_fixfactors.Rd +++ b/man/mlr_pipeops_fixfactors.Rd @@ -83,6 +83,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_histbin.Rd b/man/mlr_pipeops_histbin.Rd index 3baeeb225..0f7ef008e 100644 --- a/man/mlr_pipeops_histbin.Rd +++ b/man/mlr_pipeops_histbin.Rd @@ -95,6 +95,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_ica.Rd b/man/mlr_pipeops_ica.Rd index 6de1101d2..a17d6f9cb 100644 --- a/man/mlr_pipeops_ica.Rd +++ b/man/mlr_pipeops_ica.Rd @@ -123,6 +123,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_imputeconstant.Rd b/man/mlr_pipeops_imputeconstant.Rd index c2d42877b..b5f5abe34 100644 --- a/man/mlr_pipeops_imputeconstant.Rd +++ b/man/mlr_pipeops_imputeconstant.Rd @@ -103,6 +103,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_imputehist.Rd b/man/mlr_pipeops_imputehist.Rd index a53263e3e..0a7322fb0 100644 --- a/man/mlr_pipeops_imputehist.Rd +++ b/man/mlr_pipeops_imputehist.Rd @@ -89,6 +89,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_imputelearner.Rd b/man/mlr_pipeops_imputelearner.Rd index fb7c920a9..cbac8cc25 100644 --- a/man/mlr_pipeops_imputelearner.Rd +++ b/man/mlr_pipeops_imputelearner.Rd @@ -128,6 +128,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_imputemean.Rd b/man/mlr_pipeops_imputemean.Rd index a4b33fa0f..194b60ef9 100644 --- a/man/mlr_pipeops_imputemean.Rd +++ b/man/mlr_pipeops_imputemean.Rd @@ -82,6 +82,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_imputemedian.Rd b/man/mlr_pipeops_imputemedian.Rd index 8655e1ecc..9403aa358 100644 --- a/man/mlr_pipeops_imputemedian.Rd +++ b/man/mlr_pipeops_imputemedian.Rd @@ -82,6 +82,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_imputemode.Rd b/man/mlr_pipeops_imputemode.Rd index b35b83b13..424f825c1 100644 --- a/man/mlr_pipeops_imputemode.Rd +++ b/man/mlr_pipeops_imputemode.Rd @@ -89,6 +89,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_imputeoor.Rd b/man/mlr_pipeops_imputeoor.Rd index 187c23acf..0708c63b5 100644 --- a/man/mlr_pipeops_imputeoor.Rd +++ b/man/mlr_pipeops_imputeoor.Rd @@ -140,6 +140,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_imputesample.Rd b/man/mlr_pipeops_imputesample.Rd index e80476851..aba68ced6 100644 --- a/man/mlr_pipeops_imputesample.Rd +++ b/man/mlr_pipeops_imputesample.Rd @@ -84,6 +84,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_kernelpca.Rd b/man/mlr_pipeops_kernelpca.Rd index b18f5806f..2bd269135 100644 --- a/man/mlr_pipeops_kernelpca.Rd +++ b/man/mlr_pipeops_kernelpca.Rd @@ -98,6 +98,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_learner.Rd b/man/mlr_pipeops_learner.Rd index aab63683b..bf06c1bbc 100644 --- a/man/mlr_pipeops_learner.Rd +++ b/man/mlr_pipeops_learner.Rd @@ -124,6 +124,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_learner_pi_cvplus.Rd b/man/mlr_pipeops_learner_pi_cvplus.Rd index 188718a80..b5482745c 100644 --- a/man/mlr_pipeops_learner_pi_cvplus.Rd +++ b/man/mlr_pipeops_learner_pi_cvplus.Rd @@ -130,6 +130,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_learner_quantiles.Rd b/man/mlr_pipeops_learner_quantiles.Rd index 88244f271..71ff083b5 100644 --- a/man/mlr_pipeops_learner_quantiles.Rd +++ b/man/mlr_pipeops_learner_quantiles.Rd @@ -115,6 +115,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_missind.Rd b/man/mlr_pipeops_missind.Rd index 578044460..0bd90bb70 100644 --- a/man/mlr_pipeops_missind.Rd +++ b/man/mlr_pipeops_missind.Rd @@ -107,6 +107,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_modelmatrix.Rd b/man/mlr_pipeops_modelmatrix.Rd index f13f6f6e0..4c32ddde3 100644 --- a/man/mlr_pipeops_modelmatrix.Rd +++ b/man/mlr_pipeops_modelmatrix.Rd @@ -88,6 +88,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_multiplicityexply.Rd b/man/mlr_pipeops_multiplicityexply.Rd index 66f591560..7b838c7ce 100644 --- a/man/mlr_pipeops_multiplicityexply.Rd +++ b/man/mlr_pipeops_multiplicityexply.Rd @@ -89,6 +89,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_multiplicityimply.Rd b/man/mlr_pipeops_multiplicityimply.Rd index 2ac6cce80..045e08044 100644 --- a/man/mlr_pipeops_multiplicityimply.Rd +++ b/man/mlr_pipeops_multiplicityimply.Rd @@ -95,6 +95,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_mutate.Rd b/man/mlr_pipeops_mutate.Rd index 8adb36b74..dde4de93e 100644 --- a/man/mlr_pipeops_mutate.Rd +++ b/man/mlr_pipeops_mutate.Rd @@ -100,6 +100,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_nearmiss.Rd b/man/mlr_pipeops_nearmiss.Rd index 8d4898a66..4529a54ef 100644 --- a/man/mlr_pipeops_nearmiss.Rd +++ b/man/mlr_pipeops_nearmiss.Rd @@ -102,6 +102,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_nmf.Rd b/man/mlr_pipeops_nmf.Rd index c7b29b64c..ce48671fa 100644 --- a/man/mlr_pipeops_nmf.Rd +++ b/man/mlr_pipeops_nmf.Rd @@ -140,6 +140,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_nop.Rd b/man/mlr_pipeops_nop.Rd index 7526ba53d..546122264 100644 --- a/man/mlr_pipeops_nop.Rd +++ b/man/mlr_pipeops_nop.Rd @@ -85,6 +85,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_ovrsplit.Rd b/man/mlr_pipeops_ovrsplit.Rd index 062e086f8..59a91b883 100644 --- a/man/mlr_pipeops_ovrsplit.Rd +++ b/man/mlr_pipeops_ovrsplit.Rd @@ -102,6 +102,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_ovrunite.Rd b/man/mlr_pipeops_ovrunite.Rd index 3ce033902..965a13c31 100644 --- a/man/mlr_pipeops_ovrunite.Rd +++ b/man/mlr_pipeops_ovrunite.Rd @@ -97,6 +97,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_pca.Rd b/man/mlr_pipeops_pca.Rd index df34f6be2..04e4004ea 100644 --- a/man/mlr_pipeops_pca.Rd +++ b/man/mlr_pipeops_pca.Rd @@ -3,12 +3,12 @@ \name{mlr_pipeops_pca} \alias{mlr_pipeops_pca} \alias{PipeOpPCA} -\title{Principle Component Analysis} +\title{Principal Component Analysis} \format{ \code{\link[R6:R6Class]{R6Class}} object inheriting from \code{\link{PipeOpTaskPreproc}}/\code{\link{PipeOp}}. } \description{ -Extracts principle components from data. Only affects numerical features. +Extracts principal components from data. Only affects numerical features. See \code{\link[stats:prcomp]{stats::prcomp()}} for details. } \section{Construction}{ @@ -99,6 +99,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_proxy.Rd b/man/mlr_pipeops_proxy.Rd index d1b92cf65..66f40eeb9 100644 --- a/man/mlr_pipeops_proxy.Rd +++ b/man/mlr_pipeops_proxy.Rd @@ -107,6 +107,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_quantilebin.Rd b/man/mlr_pipeops_quantilebin.Rd index 3570d0503..ba3b5b9fd 100644 --- a/man/mlr_pipeops_quantilebin.Rd +++ b/man/mlr_pipeops_quantilebin.Rd @@ -87,6 +87,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_randomprojection.Rd b/man/mlr_pipeops_randomprojection.Rd index 486c91d5f..fd941ea28 100644 --- a/man/mlr_pipeops_randomprojection.Rd +++ b/man/mlr_pipeops_randomprojection.Rd @@ -99,6 +99,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_randomresponse.Rd b/man/mlr_pipeops_randomresponse.Rd index e3331d268..031a48273 100644 --- a/man/mlr_pipeops_randomresponse.Rd +++ b/man/mlr_pipeops_randomresponse.Rd @@ -111,6 +111,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_regravg.Rd b/man/mlr_pipeops_regravg.Rd index 76fac8eb0..90f7e2426 100644 --- a/man/mlr_pipeops_regravg.Rd +++ b/man/mlr_pipeops_regravg.Rd @@ -97,6 +97,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_removeconstants.Rd b/man/mlr_pipeops_removeconstants.Rd index 3da03d8ce..cb1aa976a 100644 --- a/man/mlr_pipeops_removeconstants.Rd +++ b/man/mlr_pipeops_removeconstants.Rd @@ -87,6 +87,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_renamecolumns.Rd b/man/mlr_pipeops_renamecolumns.Rd index 131433937..6d39fb21f 100644 --- a/man/mlr_pipeops_renamecolumns.Rd +++ b/man/mlr_pipeops_renamecolumns.Rd @@ -86,6 +86,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_replicate.Rd b/man/mlr_pipeops_replicate.Rd index 9d015566d..f95c23b26 100644 --- a/man/mlr_pipeops_replicate.Rd +++ b/man/mlr_pipeops_replicate.Rd @@ -79,6 +79,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_rowapply.Rd b/man/mlr_pipeops_rowapply.Rd index 62226792b..bece84fb3 100644 --- a/man/mlr_pipeops_rowapply.Rd +++ b/man/mlr_pipeops_rowapply.Rd @@ -85,6 +85,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_scale.Rd b/man/mlr_pipeops_scale.Rd index 3bf30b521..41c215e90 100644 --- a/man/mlr_pipeops_scale.Rd +++ b/man/mlr_pipeops_scale.Rd @@ -106,6 +106,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_scalemaxabs.Rd b/man/mlr_pipeops_scalemaxabs.Rd index 011f75107..5ca59d727 100644 --- a/man/mlr_pipeops_scalemaxabs.Rd +++ b/man/mlr_pipeops_scalemaxabs.Rd @@ -76,6 +76,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_scalerange.Rd b/man/mlr_pipeops_scalerange.Rd index 48af7d223..8e02086c4 100644 --- a/man/mlr_pipeops_scalerange.Rd +++ b/man/mlr_pipeops_scalerange.Rd @@ -86,6 +86,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_select.Rd b/man/mlr_pipeops_select.Rd index 7d678830b..5352b4fcb 100644 --- a/man/mlr_pipeops_select.Rd +++ b/man/mlr_pipeops_select.Rd @@ -98,6 +98,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_smote.Rd b/man/mlr_pipeops_smote.Rd index 0bfd310db..60d7829c2 100644 --- a/man/mlr_pipeops_smote.Rd +++ b/man/mlr_pipeops_smote.Rd @@ -104,6 +104,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_smotenc.Rd b/man/mlr_pipeops_smotenc.Rd index 5a231bb2a..a8afc77ad 100644 --- a/man/mlr_pipeops_smotenc.Rd +++ b/man/mlr_pipeops_smotenc.Rd @@ -116,6 +116,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_spatialsign.Rd b/man/mlr_pipeops_spatialsign.Rd index efad79930..e5f84cc05 100644 --- a/man/mlr_pipeops_spatialsign.Rd +++ b/man/mlr_pipeops_spatialsign.Rd @@ -81,6 +81,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_subsample.Rd b/man/mlr_pipeops_subsample.Rd index 6cd121c46..15a09a8af 100644 --- a/man/mlr_pipeops_subsample.Rd +++ b/man/mlr_pipeops_subsample.Rd @@ -106,6 +106,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_targetinvert.Rd b/man/mlr_pipeops_targetinvert.Rd index 33f65c50c..b12577de6 100644 --- a/man/mlr_pipeops_targetinvert.Rd +++ b/man/mlr_pipeops_targetinvert.Rd @@ -76,6 +76,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_targetmutate.Rd b/man/mlr_pipeops_targetmutate.Rd index b348d1ce3..9dad6c113 100644 --- a/man/mlr_pipeops_targetmutate.Rd +++ b/man/mlr_pipeops_targetmutate.Rd @@ -124,6 +124,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_targettrafoscalerange.Rd b/man/mlr_pipeops_targettrafoscalerange.Rd index 8400551c5..1c46e5209 100644 --- a/man/mlr_pipeops_targettrafoscalerange.Rd +++ b/man/mlr_pipeops_targettrafoscalerange.Rd @@ -95,6 +95,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_textvectorizer.Rd b/man/mlr_pipeops_textvectorizer.Rd index d40503694..d04b91b7d 100644 --- a/man/mlr_pipeops_textvectorizer.Rd +++ b/man/mlr_pipeops_textvectorizer.Rd @@ -200,6 +200,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_threshold.Rd b/man/mlr_pipeops_threshold.Rd index d8aa2fa5c..ff4dd28cf 100644 --- a/man/mlr_pipeops_threshold.Rd +++ b/man/mlr_pipeops_threshold.Rd @@ -89,6 +89,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_tomek.Rd b/man/mlr_pipeops_tomek.Rd index 7a3bee4bd..e6998de47 100644 --- a/man/mlr_pipeops_tomek.Rd +++ b/man/mlr_pipeops_tomek.Rd @@ -95,6 +95,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_tunethreshold.Rd b/man/mlr_pipeops_tunethreshold.Rd index f2707ef05..9f85e100e 100644 --- a/man/mlr_pipeops_tunethreshold.Rd +++ b/man/mlr_pipeops_tunethreshold.Rd @@ -115,6 +115,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_unbranch.Rd b/man/mlr_pipeops_unbranch.Rd index f79719aed..8ef0045f6 100644 --- a/man/mlr_pipeops_unbranch.Rd +++ b/man/mlr_pipeops_unbranch.Rd @@ -88,6 +88,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_updatetarget.Rd b/man/mlr_pipeops_updatetarget.Rd index 263b41ff3..2c9414cea 100644 --- a/man/mlr_pipeops_updatetarget.Rd +++ b/man/mlr_pipeops_updatetarget.Rd @@ -108,6 +108,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_vtreat.Rd b/man/mlr_pipeops_vtreat.Rd index 81514f09d..d6a52cbcd 100644 --- a/man/mlr_pipeops_vtreat.Rd +++ b/man/mlr_pipeops_vtreat.Rd @@ -162,6 +162,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, diff --git a/man/mlr_pipeops_yeojohnson.Rd b/man/mlr_pipeops_yeojohnson.Rd index f1823e343..163647673 100644 --- a/man/mlr_pipeops_yeojohnson.Rd +++ b/man/mlr_pipeops_yeojohnson.Rd @@ -98,6 +98,7 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, +\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, From 6f243fa6b777fd55bac3bc7949d70bad5eea5f95 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Sun, 7 Sep 2025 16:36:58 +0100 Subject: [PATCH 10/35] added tests for PipeOpBasisSplines --- tests/testthat/test_pipeop_basissplines.R | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 tests/testthat/test_pipeop_basissplines.R diff --git a/tests/testthat/test_pipeop_basissplines.R b/tests/testthat/test_pipeop_basissplines.R new file mode 100644 index 000000000..20fd4937c --- /dev/null +++ b/tests/testthat/test_pipeop_basissplines.R @@ -0,0 +1,6 @@ +context("PipeOpBasisSplines") + +# test_that("PipeOpBasisSplines - basic properties", { +# task = mlr_tasks$get("mtcars") +# expect_datapreproc_pipeop_class(PipeOpBasisSplines, task = task) +# }) From a4564ce8331885de5a679d1a8a29144693baf03e Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Fri, 12 Sep 2025 12:39:05 +0200 Subject: [PATCH 11/35] added test for po basissplines --- R/PipeOpBasisSplines.R | 67 +++++++++++++++++----- tests/testthat/test_pipeop_basissplines.R | 69 +++++++++++++++++++++-- 2 files changed, 118 insertions(+), 18 deletions(-) diff --git a/R/PipeOpBasisSplines.R b/R/PipeOpBasisSplines.R index 418c83cda..61276f7e8 100644 --- a/R/PipeOpBasisSplines.R +++ b/R/PipeOpBasisSplines.R @@ -27,7 +27,7 @@ #' #' @section Parameters: #' The parameters are the parameters inherited from [`PipeOpTaskPreproc`], as well as: -#' * `hp` :: `character(1)` \cr +#' * `factor` :: `character(1)` \cr #' "Polynomial" when polynomial splines are applied [`splines::bs`] or #' "Cubic" when natural cubic splines are applied [`splines::bs`]. #' Default is "polynomial". @@ -63,10 +63,10 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", inherit = PipeOpTaskPreprocSimple, public = list( initialize = function(id = "basissplines", param_vals = list()) { - #browser() ps = ps( - factor = p_fct(levels = c("polynomial", "cubic"), init = "polynomial", tags = c("train", "basissplines")), # tag basissplines? - df = p_int(init = 1, lower = 1, upper = Inf, tags = c("train", "basissplines")) + factor = p_fct(levels = c("polynomial", "cubic"), init = "polynomial", tags = c("train", "basissplines", "required")), + df = p_int(lower = 1, upper = Inf, special_vals = list(NULL), init = NULL, tags = c("train", "basissplines")), + degree = p_int(lower = 1, upper = Inf, depends = factor == "polynomial", tags = c("train", "basissplines")) ) super$initialize(id = id, param_set = ps, param_vals = param_vals) } @@ -74,15 +74,8 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", private = list( .transform_dt = function(dt, levels) { #browser() - pv = self$param_set$get_values(tags = "train") - if (pv$factor == "polynomial") { - single_string = - invoke(.f = paste0, .args = list("splines::bs(dt[[", seq_along(dt), "]] , ", pv$df, ")")) - } - else { - single_string = - invoke(.f = paste0, .args = list("splines::ns(dt[[", seq_along(dt), "]] , ", pv$df, ")")) - } + pv = self$param_set$get_values(tags = "basissplines") + single_string = mlr3misc::invoke(.f = paste0, .args = list(if (pv$factor == "polynomial") "splines::bs(dt[[" else "splines::ns(dt[[", seq_along(dt), "]]", if (!is.null(pv$df)) " , df = ", pv$df, if (!is.null(pv$degree)) ", degree = ", pv$degree, ")")) string = paste(" ~ ", paste(single_string, collapse = " + ")) result = as.data.frame(stats::model.matrix(formula(string), data = dt)) max_df = as.numeric(max(regmatches(colnames(result), regexpr("[0-9]+$", colnames(result))))) @@ -101,8 +94,54 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", mlr_pipeops$add("basissplines", PipeOpBasisSplines) # po = po("basissplines") +# po_result = po$train(list(tsk("iris")))[[1]]$data() + +# po_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length) + splines::bs(Sepal.Width) + splines::bs(Petal.Length) + splines::bs(Petal.Width), data = iris) + +# podf3 = po("basissplines", df = 3) +# podf3_result = podf3$train(list(tsk("iris")))[[1]]$data() +# podf3_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, df = 3) + splines::bs(Sepal.Width, df = 3) + splines::bs(Petal.Length, df = 3) + splines::bs(Petal.Width, df = 3), data = iris) + +# podf4 = po("basissplines", df = 4) +# podf4_result = podf4$train(list(tsk("iris")))[[1]]$data() +# podf4_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, df = 4) + splines::bs(Sepal.Width, df = 4) + splines::bs(Petal.Length, df = 4) + splines::bs(Petal.Width, df = 4), data = iris) + +# podf7 = po("basissplines", df = 7) +# podf7_result = podf7$train(list(tsk("iris")))[[1]]$data() +# podf7_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, df = 7) + splines::bs(Sepal.Width, df = 7) + splines::bs(Petal.Length, df = 7) + splines::bs(Petal.Width, df = 7), data = iris) + +# podeg3df2 = po("basissplines", degree = 3, df = 2) +# podeg3df2_result = podeg3df2$train(list(tsk("iris")))[[1]]$data() +# podeg3df2_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, degree = 3, df = 2) + splines::bs(Sepal.Width, degree = 3, df = 2) + splines::bs(Petal.Length, degree = 3, df = 2) + splines::bs(Petal.Width, degree = 3, df = 2), data = iris) + + +# podeg5df8 = po("basissplines", degree = 5, df = 8) +# podeg5df8_result = podeg5df8$train(list(tsk("iris")))[[1]]$data() +# podeg5df8_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, degree = 5, df = 8) + splines::bs(Sepal.Width, degree = 5, df = 8) + splines::bs(Petal.Length, degree = 5, df = 8) + splines::bs(Petal.Width, degree = 5, df = 8), data = iris) + +# pons = po("basissplines", factor = "cubic") +# pons_result = pons$train(list(tsk("iris")))[[1]]$data() +# pons_result_calc = stats::model.matrix(Species ~ splines::ns(Sepal.Length) + splines::ns(Sepal.Width) + splines::ns(Petal.Length) + splines::ns(Petal.Width), data = iris) + +# pons_error = po("basissplines", factor = "cubic", df = 3, degree = 4) + +# ponsdf5 = po("basissplines", factor = "cubic", df = 5) +# ponsdf5_result = ponsdf5$train(list(tsk("iris")))[[1]]$data() +# ponsdf5_result_calc = stats::model.matrix(Species ~ splines::ns(Sepal.Length, df = 5) + splines::ns(Sepal.Width, df = 5) + splines::ns(Petal.Length, df = 5) + splines::ns(Petal.Width, df = 5), data = iris) + + + + +# selecting columns # sel_cyl = selector_grep("cyl|disp|am") -# po$train(list(tsk("mtcars")))[[1]]$data() +# pos = po("basissplines", affect_columns = sel_cyl) +# pos$train(list(tsk("mtcars")))[[1]]$data() + +# pop = po("basissplines", df = 5) +# pop$train(list(tsk("mtcars")))[[1]]$data() + +# poc = po("basissplines", df = 4, factor = "cubic") +# poc$train(list(tsk("mtcars")))[[1]]$data() # df als hyperparameterf # das ziel ist es dass wir diese model.matrix für alle features kriegen diff --git a/tests/testthat/test_pipeop_basissplines.R b/tests/testthat/test_pipeop_basissplines.R index 20fd4937c..70634428b 100644 --- a/tests/testthat/test_pipeop_basissplines.R +++ b/tests/testthat/test_pipeop_basissplines.R @@ -1,6 +1,67 @@ context("PipeOpBasisSplines") -# test_that("PipeOpBasisSplines - basic properties", { -# task = mlr_tasks$get("mtcars") -# expect_datapreproc_pipeop_class(PipeOpBasisSplines, task = task) -# }) +test_that("PipeOpBasisSplines - basic properties", { + browser() + task = mlr_tasks$get("mtcars") + expect_datapreproc_pipeop_class(PipeOpBasisSplines, task = task, deterministic_predict = FALSE) +}) + +test_that("Error when trying to pass degree argument while factor = cubic", { + expect_error(po("basissplines", factor = "cubic", degree = 3)) +}) + +test_that("results are identical as when calculating by hand", { + degree = c(1, 2, 3, 4, 5) + df = degree + 3 + task = tsk("iris") + for (j in degree) { + po = po("basissplines", df = df[[j]], degree = degree[[j]]) + result = po$train(list(task))[[1]]$data()[, -1] + result_calc = as.data.table(stats::model.matrix( + Species ~ splines::bs(Petal.Length, df = df[[j]], degree = degree[[j]]) + + splines::bs(Petal.Width, df = df[[j]], degree = degree[[j]]) + + splines::bs(Sepal.Length, df = df[[j]], degree = degree[[j]]) + + splines::bs(Sepal.Width, df = df[[j]], degree = degree[[j]]), + data = iris + )) + data.table::setnames(result, rep("", ncol(result))) + data.table::setnames(result_calc, rep("", ncol(result_calc))) + expect_equal(result, result_calc) + } + for (j in df) { + po = po("basissplines", df = j) + result = po$train(list(task))[[1]]$data()[, -1] + result_calc = as.data.table(stats::model.matrix( + Species ~ splines::bs(Petal.Length, df = j) + + splines::bs(Petal.Width, df = j) + + splines::bs(Sepal.Length, df = j) + + splines::bs(Sepal.Width, df = j), + data = iris + )) + data.table::setnames(result, rep("", ncol(result))) + data.table::setnames(result_calc, rep("", ncol(result_calc))) + expect_equal(result, result_calc) + } +}) + + +test_that("Selector", { + selector = list("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width") + task = tsk("iris") + factor = list("polynomial", "cubic") + for (i in seq_along(factor)) { + for (j in seq_along(selector)) { + po = po("basissplines", affect_columns = selector_grep(selector[[j]])) + single_string = paste0(if (factor[[i]] == "polynomial") "splines::bs(dt[[" else "splines::ns(dt[[", selector, "]]", ")") + result = po$train(list(task))[[1]]$data()[, -1] + result_calc = as.data.table(stats::model.matrix( + as.formula(paste("Species ~ splines::bs(", selector[[j]], ")")), + data = iris + )) + relevant_result = as.data.table(intersect(result_calc, result)) + data.table::setnames(result_calc, rep("", ncol(result_calc))) + data.table::setnames(relevant_result, rep("", ncol(relevant_result))) + expect_equal(result_calc, relevant_result) + } + } +}) From 3f34d0ad1e4b95a3389c8dc8ed1c29e77ac5e86a Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Tue, 16 Sep 2025 16:48:41 +0200 Subject: [PATCH 12/35] Renamed BasisSplines to Splines --- DESCRIPTION | 2 +- NAMESPACE | 2 +- R/{PipeOpBasisSplines.R => PipeOpSplines.R} | 58 +++++++++++-------- man/PipeOp.Rd | 2 +- man/PipeOpEncodePL.Rd | 2 +- man/PipeOpEnsemble.Rd | 2 +- man/PipeOpImpute.Rd | 2 +- man/PipeOpTargetTrafo.Rd | 2 +- man/PipeOpTaskPreproc.Rd | 2 +- man/PipeOpTaskPreprocSimple.Rd | 2 +- man/mlr_pipeops.Rd | 2 +- man/mlr_pipeops_adas.Rd | 2 +- man/mlr_pipeops_blsmote.Rd | 2 +- man/mlr_pipeops_boxcox.Rd | 2 +- man/mlr_pipeops_branch.Rd | 2 +- man/mlr_pipeops_chunk.Rd | 2 +- man/mlr_pipeops_classbalancing.Rd | 2 +- man/mlr_pipeops_classifavg.Rd | 2 +- man/mlr_pipeops_classweights.Rd | 2 +- man/mlr_pipeops_colapply.Rd | 2 +- man/mlr_pipeops_collapsefactors.Rd | 2 +- man/mlr_pipeops_colroles.Rd | 2 +- man/mlr_pipeops_copy.Rd | 2 +- man/mlr_pipeops_datefeatures.Rd | 2 +- man/mlr_pipeops_decode.Rd | 2 +- man/mlr_pipeops_encode.Rd | 2 +- man/mlr_pipeops_encodeimpact.Rd | 2 +- man/mlr_pipeops_encodelmer.Rd | 2 +- man/mlr_pipeops_encodeplquantiles.Rd | 2 +- man/mlr_pipeops_encodepltree.Rd | 2 +- man/mlr_pipeops_featureunion.Rd | 2 +- man/mlr_pipeops_filter.Rd | 2 +- man/mlr_pipeops_fixfactors.Rd | 2 +- man/mlr_pipeops_histbin.Rd | 2 +- man/mlr_pipeops_ica.Rd | 2 +- man/mlr_pipeops_imputeconstant.Rd | 2 +- man/mlr_pipeops_imputehist.Rd | 2 +- man/mlr_pipeops_imputelearner.Rd | 2 +- man/mlr_pipeops_imputemean.Rd | 2 +- man/mlr_pipeops_imputemedian.Rd | 2 +- man/mlr_pipeops_imputemode.Rd | 2 +- man/mlr_pipeops_imputeoor.Rd | 2 +- man/mlr_pipeops_imputesample.Rd | 2 +- man/mlr_pipeops_kernelpca.Rd | 2 +- man/mlr_pipeops_learner.Rd | 2 +- man/mlr_pipeops_learner_pi_cvplus.Rd | 2 +- man/mlr_pipeops_learner_quantiles.Rd | 2 +- man/mlr_pipeops_missind.Rd | 2 +- man/mlr_pipeops_modelmatrix.Rd | 2 +- man/mlr_pipeops_multiplicityexply.Rd | 2 +- man/mlr_pipeops_multiplicityimply.Rd | 2 +- man/mlr_pipeops_mutate.Rd | 2 +- man/mlr_pipeops_nearmiss.Rd | 2 +- man/mlr_pipeops_nmf.Rd | 2 +- man/mlr_pipeops_nop.Rd | 2 +- man/mlr_pipeops_ovrsplit.Rd | 2 +- man/mlr_pipeops_ovrunite.Rd | 2 +- man/mlr_pipeops_pca.Rd | 2 +- man/mlr_pipeops_proxy.Rd | 2 +- man/mlr_pipeops_quantilebin.Rd | 2 +- man/mlr_pipeops_randomprojection.Rd | 2 +- man/mlr_pipeops_randomresponse.Rd | 2 +- man/mlr_pipeops_regravg.Rd | 2 +- man/mlr_pipeops_removeconstants.Rd | 2 +- man/mlr_pipeops_renamecolumns.Rd | 2 +- man/mlr_pipeops_replicate.Rd | 2 +- man/mlr_pipeops_rowapply.Rd | 2 +- man/mlr_pipeops_scale.Rd | 2 +- man/mlr_pipeops_scalemaxabs.Rd | 2 +- man/mlr_pipeops_scalerange.Rd | 2 +- man/mlr_pipeops_select.Rd | 2 +- man/mlr_pipeops_smote.Rd | 2 +- man/mlr_pipeops_smotenc.Rd | 2 +- man/mlr_pipeops_spatialsign.Rd | 2 +- ...basissplines.Rd => mlr_pipeops_splines.Rd} | 16 ++--- man/mlr_pipeops_subsample.Rd | 2 +- man/mlr_pipeops_targetinvert.Rd | 2 +- man/mlr_pipeops_targetmutate.Rd | 2 +- man/mlr_pipeops_targettrafoscalerange.Rd | 2 +- man/mlr_pipeops_textvectorizer.Rd | 2 +- man/mlr_pipeops_threshold.Rd | 2 +- man/mlr_pipeops_tomek.Rd | 2 +- man/mlr_pipeops_tunethreshold.Rd | 2 +- man/mlr_pipeops_unbranch.Rd | 2 +- man/mlr_pipeops_updatetarget.Rd | 2 +- man/mlr_pipeops_vtreat.Rd | 2 +- man/mlr_pipeops_yeojohnson.Rd | 2 +- ...p_basissplines.R => test_pipeop_splines.R} | 25 ++++---- 88 files changed, 138 insertions(+), 131 deletions(-) rename R/{PipeOpBasisSplines.R => PipeOpSplines.R} (79%) rename man/{mlr_pipeops_basissplines.Rd => mlr_pipeops_splines.Rd} (93%) rename tests/testthat/{test_pipeop_basissplines.R => test_pipeop_splines.R} (76%) diff --git a/DESCRIPTION b/DESCRIPTION index 346dddc49..560f8d901 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -130,7 +130,6 @@ Collate: 'PipeOpTaskPreproc.R' 'PipeOpADAS.R' 'PipeOpBLSmote.R' - 'PipeOpBasisSplines.R' 'PipeOpBoxCox.R' 'PipeOpBranch.R' 'PipeOpChunk.R' @@ -190,6 +189,7 @@ Collate: 'PipeOpSmote.R' 'PipeOpSmoteNC.R' 'PipeOpSpatialSign.R' + 'PipeOpSplines.R' 'PipeOpSubsample.R' 'PipeOpTextVectorizer.R' 'PipeOpThreshold.R' diff --git a/NAMESPACE b/NAMESPACE index 73091720f..ba8feea69 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -99,7 +99,6 @@ export(NO_OP) export(PipeOp) export(PipeOpADAS) export(PipeOpBLSmote) -export(PipeOpBasisSplines) export(PipeOpBoxCox) export(PipeOpBranch) export(PipeOpChunk) @@ -165,6 +164,7 @@ export(PipeOpSelect) export(PipeOpSmote) export(PipeOpSmoteNC) export(PipeOpSpatialSign) +export(PipeOpSplines) export(PipeOpSubsample) export(PipeOpTargetInvert) export(PipeOpTargetMutate) diff --git a/R/PipeOpBasisSplines.R b/R/PipeOpSplines.R similarity index 79% rename from R/PipeOpBasisSplines.R rename to R/PipeOpSplines.R index 61276f7e8..8b4c84c35 100644 --- a/R/PipeOpBasisSplines.R +++ b/R/PipeOpSplines.R @@ -1,7 +1,7 @@ #' @title Transforms Columns using Splines Methods by Constructing a Model Matrix #' #' @usage NULL -#' @name mlr_pipeops_basissplines +#' @name mlr_pipeops_splines #' @format [`R6Class`][R6::R6Class] object inheriting from [`PipeOpTaskPreprocSimple`]/[`PipeOpTaskPreproc`]/[`PipeOp`]. #' #' @description @@ -13,7 +13,7 @@ #' ``` #' #' * `id` :: `character(1)`\cr -#' Identifier of resulting object, default `"basissplines"`. +#' Identifier of resulting object, default `"splines"`. #' * `param_vals` :: named `list`\cr #' List of hyperparameter settings, overwriting the hyperparameter settings that would otherwise be set during construction. Default `list()`. #' @@ -29,7 +29,7 @@ #' The parameters are the parameters inherited from [`PipeOpTaskPreproc`], as well as: #' * `factor` :: `character(1)` \cr #' "Polynomial" when polynomial splines are applied [`splines::bs`] or -#' "Cubic" when natural cubic splines are applied [`splines::bs`]. +#' "natural" when natural natural splines are applied [`splines::bs`]. #' Default is "polynomial". #' * `df` :: `integer(1)` \cr #' Number of degrees of freedom for calculation of splines basis matrix. @@ -49,7 +49,7 @@ #' library("mlr3") #' #' task = tsk("iris") -#' pop = po("basissplines") +#' pop = po("splines") #' #' pop$train(list(task))[[1]]$data() #' @@ -59,30 +59,34 @@ #' @include PipeOpTaskPreproc.R #' @export -PipeOpBasisSplines = R6Class("PipeOpBasisSplines", +PipeOpSplines = R6Class("PipeOpSplines", inherit = PipeOpTaskPreprocSimple, public = list( - initialize = function(id = "basissplines", param_vals = list()) { + initialize = function(id = "splines", param_vals = list()) { ps = ps( - factor = p_fct(levels = c("polynomial", "cubic"), init = "polynomial", tags = c("train", "basissplines", "required")), - df = p_int(lower = 1, upper = Inf, special_vals = list(NULL), init = NULL, tags = c("train", "basissplines")), - degree = p_int(lower = 1, upper = Inf, depends = factor == "polynomial", tags = c("train", "basissplines")) + type = p_fct(levels = c("polynomial", "natural"), init = "natural", tags = c("train", "required")), + df = p_int(lower = 1, upper = Inf, special_vals = list(NULL), init = NULL, tags = "train"), + degree = p_int(lower = 1, upper = Inf, depends = type == "polynomial", tags = "train") ) super$initialize(id = id, param_set = ps, param_vals = param_vals) } ), private = list( .transform_dt = function(dt, levels) { - #browser() - pv = self$param_set$get_values(tags = "basissplines") - single_string = mlr3misc::invoke(.f = paste0, .args = list(if (pv$factor == "polynomial") "splines::bs(dt[[" else "splines::ns(dt[[", seq_along(dt), "]]", if (!is.null(pv$df)) " , df = ", pv$df, if (!is.null(pv$degree)) ", degree = ", pv$degree, ")")) + pv = self$param_set$get_values(tags = "train") + single_string = paste0(if (pv$type == "natural") "splines::ns(dt[[" else "splines::bs(dt[[", seq_along(dt), "]]", if (!is.null(pv$df)) " , df = ", pv$df, if (!is.null(pv$degree)) ", degree = ", pv$degree, ")") string = paste(" ~ ", paste(single_string, collapse = " + ")) result = as.data.frame(stats::model.matrix(formula(string), data = dt)) - max_df = as.numeric(max(regmatches(colnames(result), regexpr("[0-9]+$", colnames(result))))) + max_df = max(regmatches(colnames(result), regexpr("([0-9]+$|$)", colnames(result)))) + if (!is.numeric(max_df)) { + max_df = 1 + } else { + max_df = as.numeric(max_df) + } k = 1 for (j in colnames(dt)) { for (i in seq_len(max_df)) { - colnames(result)[k + 1] = paste0("splines.", j, ".", tail(strsplit(colnames(result)[[k + 1]], "")[[1]], 1)) + colnames(result)[k + 1] = paste0(pv$type, "splines.", j, ".", i) k = k + 1 } } @@ -91,13 +95,22 @@ PipeOpBasisSplines = R6Class("PipeOpBasisSplines", ) ) -mlr_pipeops$add("basissplines", PipeOpBasisSplines) +mlr_pipeops$add("splines", PipeOpSplines) -# po = po("basissplines") +# po = po("splines", df = 1) # po_result = po$train(list(tsk("iris")))[[1]]$data() +# po = po("splines", type = "polynomial", df = 2, degree = 4) +# po_result = po$train(list(tsk("iris")))[[1]]$data() # po_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length) + splines::bs(Sepal.Width) + splines::bs(Petal.Length) + splines::bs(Petal.Width), data = iris) +# selecting columns +# sel_cyl = selector_grep("Sepal.Length") +# pos = po("basissplines", affect_columns = sel_cyl) +# pos_result = pos$train(list(tsk("iris")))[[1]]$data() +# pos_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length), data = iris) + + # podf3 = po("basissplines", df = 3) # podf3_result = podf3$train(list(tsk("iris")))[[1]]$data() # podf3_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, df = 3) + splines::bs(Sepal.Width, df = 3) + splines::bs(Petal.Length, df = 3) + splines::bs(Petal.Width, df = 3), data = iris) @@ -119,28 +132,23 @@ mlr_pipeops$add("basissplines", PipeOpBasisSplines) # podeg5df8_result = podeg5df8$train(list(tsk("iris")))[[1]]$data() # podeg5df8_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, degree = 5, df = 8) + splines::bs(Sepal.Width, degree = 5, df = 8) + splines::bs(Petal.Length, degree = 5, df = 8) + splines::bs(Petal.Width, degree = 5, df = 8), data = iris) -# pons = po("basissplines", factor = "cubic") +# pons = po("basissplines", factor = "natural") # pons_result = pons$train(list(tsk("iris")))[[1]]$data() # pons_result_calc = stats::model.matrix(Species ~ splines::ns(Sepal.Length) + splines::ns(Sepal.Width) + splines::ns(Petal.Length) + splines::ns(Petal.Width), data = iris) -# pons_error = po("basissplines", factor = "cubic", df = 3, degree = 4) +# pons_error = po("basissplines", factor = "natural", df = 3, degree = 4) -# ponsdf5 = po("basissplines", factor = "cubic", df = 5) +# ponsdf5 = po("basissplines", factor = "natural", df = 5) # ponsdf5_result = ponsdf5$train(list(tsk("iris")))[[1]]$data() # ponsdf5_result_calc = stats::model.matrix(Species ~ splines::ns(Sepal.Length, df = 5) + splines::ns(Sepal.Width, df = 5) + splines::ns(Petal.Length, df = 5) + splines::ns(Petal.Width, df = 5), data = iris) -# selecting columns -# sel_cyl = selector_grep("cyl|disp|am") -# pos = po("basissplines", affect_columns = sel_cyl) -# pos$train(list(tsk("mtcars")))[[1]]$data() - # pop = po("basissplines", df = 5) # pop$train(list(tsk("mtcars")))[[1]]$data() -# poc = po("basissplines", df = 4, factor = "cubic") +# poc = po("basissplines", df = 4, factor = "natural") # poc$train(list(tsk("mtcars")))[[1]]$data() # df als hyperparameterf diff --git a/man/PipeOp.Rd b/man/PipeOp.Rd index 30ead24b3..e68ec7c03 100644 --- a/man/PipeOp.Rd +++ b/man/PipeOp.Rd @@ -286,7 +286,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -349,6 +348,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/PipeOpEncodePL.Rd b/man/PipeOpEncodePL.Rd index d2192657a..c08f54351 100644 --- a/man/PipeOpEncodePL.Rd +++ b/man/PipeOpEncodePL.Rd @@ -110,7 +110,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -173,6 +172,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/PipeOpEnsemble.Rd b/man/PipeOpEnsemble.Rd index 8649e8ec6..c6c0b37c4 100644 --- a/man/PipeOpEnsemble.Rd +++ b/man/PipeOpEnsemble.Rd @@ -107,7 +107,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -170,6 +169,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/PipeOpImpute.Rd b/man/PipeOpImpute.Rd index fe397c494..ad588ca54 100644 --- a/man/PipeOpImpute.Rd +++ b/man/PipeOpImpute.Rd @@ -173,7 +173,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -236,6 +235,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/PipeOpTargetTrafo.Rd b/man/PipeOpTargetTrafo.Rd index 73b30fa8a..b557beb96 100644 --- a/man/PipeOpTargetTrafo.Rd +++ b/man/PipeOpTargetTrafo.Rd @@ -146,7 +146,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -209,6 +208,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/PipeOpTaskPreproc.Rd b/man/PipeOpTaskPreproc.Rd index a31f62dc1..c25210873 100644 --- a/man/PipeOpTaskPreproc.Rd +++ b/man/PipeOpTaskPreproc.Rd @@ -203,7 +203,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -266,6 +265,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/PipeOpTaskPreprocSimple.Rd b/man/PipeOpTaskPreprocSimple.Rd index 91eb94dc1..5e8d58666 100644 --- a/man/PipeOpTaskPreprocSimple.Rd +++ b/man/PipeOpTaskPreprocSimple.Rd @@ -146,7 +146,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreproc}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -209,6 +208,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops.Rd b/man/mlr_pipeops.Rd index ef26a86dd..2d066c376 100644 --- a/man/mlr_pipeops.Rd +++ b/man/mlr_pipeops.Rd @@ -98,7 +98,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreproc}}, \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -161,6 +160,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_adas.Rd b/man/mlr_pipeops_adas.Rd index 27c549407..bdbd2674c 100644 --- a/man/mlr_pipeops_adas.Rd +++ b/man/mlr_pipeops_adas.Rd @@ -107,7 +107,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreproc}}, \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -170,6 +169,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_blsmote.Rd b/man/mlr_pipeops_blsmote.Rd index 59ff3b9f0..5e2c7e0ad 100644 --- a/man/mlr_pipeops_blsmote.Rd +++ b/man/mlr_pipeops_blsmote.Rd @@ -113,7 +113,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, \code{\link{mlr_pipeops_chunk}}, @@ -175,6 +174,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_boxcox.Rd b/man/mlr_pipeops_boxcox.Rd index cf498a7d7..8f041901a 100644 --- a/man/mlr_pipeops_boxcox.Rd +++ b/man/mlr_pipeops_boxcox.Rd @@ -97,7 +97,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_branch}}, \code{\link{mlr_pipeops_chunk}}, @@ -159,6 +158,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_branch.Rd b/man/mlr_pipeops_branch.Rd index bbc3e3fa8..09dd4e182 100644 --- a/man/mlr_pipeops_branch.Rd +++ b/man/mlr_pipeops_branch.Rd @@ -110,7 +110,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_chunk}}, @@ -172,6 +171,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_chunk.Rd b/man/mlr_pipeops_chunk.Rd index 378bab125..6ba54ec4c 100644 --- a/man/mlr_pipeops_chunk.Rd +++ b/man/mlr_pipeops_chunk.Rd @@ -89,7 +89,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -151,6 +150,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_classbalancing.Rd b/man/mlr_pipeops_classbalancing.Rd index 9a3aaa6d7..5d55b3c5c 100644 --- a/man/mlr_pipeops_classbalancing.Rd +++ b/man/mlr_pipeops_classbalancing.Rd @@ -131,7 +131,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -193,6 +192,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_classifavg.Rd b/man/mlr_pipeops_classifavg.Rd index 84a146c11..14624f6b6 100644 --- a/man/mlr_pipeops_classifavg.Rd +++ b/man/mlr_pipeops_classifavg.Rd @@ -104,7 +104,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -166,6 +165,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_classweights.Rd b/man/mlr_pipeops_classweights.Rd index e90ea90c1..13294d1dd 100644 --- a/man/mlr_pipeops_classweights.Rd +++ b/man/mlr_pipeops_classweights.Rd @@ -109,7 +109,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -171,6 +170,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_colapply.Rd b/man/mlr_pipeops_colapply.Rd index 743f9cc25..508ecc520 100644 --- a/man/mlr_pipeops_colapply.Rd +++ b/man/mlr_pipeops_colapply.Rd @@ -119,7 +119,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -181,6 +180,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_collapsefactors.Rd b/man/mlr_pipeops_collapsefactors.Rd index 4a938e933..2346085f8 100644 --- a/man/mlr_pipeops_collapsefactors.Rd +++ b/man/mlr_pipeops_collapsefactors.Rd @@ -122,7 +122,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -184,6 +183,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_colroles.Rd b/man/mlr_pipeops_colroles.Rd index a377755bc..9319e889b 100644 --- a/man/mlr_pipeops_colroles.Rd +++ b/man/mlr_pipeops_colroles.Rd @@ -100,7 +100,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -162,6 +161,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_copy.Rd b/man/mlr_pipeops_copy.Rd index d1ddf06c4..606053687 100644 --- a/man/mlr_pipeops_copy.Rd +++ b/man/mlr_pipeops_copy.Rd @@ -105,7 +105,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -167,6 +166,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_datefeatures.Rd b/man/mlr_pipeops_datefeatures.Rd index 4a5ba2efb..a1ef1d907 100644 --- a/man/mlr_pipeops_datefeatures.Rd +++ b/man/mlr_pipeops_datefeatures.Rd @@ -128,7 +128,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -190,6 +189,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_decode.Rd b/man/mlr_pipeops_decode.Rd index 2b9026f42..b859d81d8 100644 --- a/man/mlr_pipeops_decode.Rd +++ b/man/mlr_pipeops_decode.Rd @@ -165,7 +165,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -227,6 +226,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_encode.Rd b/man/mlr_pipeops_encode.Rd index 68a488fd3..44655158c 100644 --- a/man/mlr_pipeops_encode.Rd +++ b/man/mlr_pipeops_encode.Rd @@ -126,7 +126,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -188,6 +187,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_encodeimpact.Rd b/man/mlr_pipeops_encodeimpact.Rd index c0b9204d2..c22b2871d 100644 --- a/man/mlr_pipeops_encodeimpact.Rd +++ b/man/mlr_pipeops_encodeimpact.Rd @@ -110,7 +110,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -172,6 +171,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_encodelmer.Rd b/man/mlr_pipeops_encodelmer.Rd index 35031c4b6..eabc507b3 100644 --- a/man/mlr_pipeops_encodelmer.Rd +++ b/man/mlr_pipeops_encodelmer.Rd @@ -122,7 +122,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -184,6 +183,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_encodeplquantiles.Rd b/man/mlr_pipeops_encodeplquantiles.Rd index 1b13e3e9f..76af82842 100644 --- a/man/mlr_pipeops_encodeplquantiles.Rd +++ b/man/mlr_pipeops_encodeplquantiles.Rd @@ -115,7 +115,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -177,6 +176,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_encodepltree.Rd b/man/mlr_pipeops_encodepltree.Rd index 692a421d9..36338ca07 100644 --- a/man/mlr_pipeops_encodepltree.Rd +++ b/man/mlr_pipeops_encodepltree.Rd @@ -130,7 +130,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -192,6 +191,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_featureunion.Rd b/man/mlr_pipeops_featureunion.Rd index 39cab3958..649b7a27c 100644 --- a/man/mlr_pipeops_featureunion.Rd +++ b/man/mlr_pipeops_featureunion.Rd @@ -123,7 +123,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -185,6 +184,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_filter.Rd b/man/mlr_pipeops_filter.Rd index 1aa6d0aa1..de7be230e 100644 --- a/man/mlr_pipeops_filter.Rd +++ b/man/mlr_pipeops_filter.Rd @@ -152,7 +152,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -214,6 +213,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_fixfactors.Rd b/man/mlr_pipeops_fixfactors.Rd index 02facdfc0..0f3ac0185 100644 --- a/man/mlr_pipeops_fixfactors.Rd +++ b/man/mlr_pipeops_fixfactors.Rd @@ -83,7 +83,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -145,6 +144,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_histbin.Rd b/man/mlr_pipeops_histbin.Rd index 0f7ef008e..f7306942f 100644 --- a/man/mlr_pipeops_histbin.Rd +++ b/man/mlr_pipeops_histbin.Rd @@ -95,7 +95,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -157,6 +156,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_ica.Rd b/man/mlr_pipeops_ica.Rd index a17d6f9cb..e0eb8cf73 100644 --- a/man/mlr_pipeops_ica.Rd +++ b/man/mlr_pipeops_ica.Rd @@ -123,7 +123,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -185,6 +184,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_imputeconstant.Rd b/man/mlr_pipeops_imputeconstant.Rd index b5f5abe34..56030036f 100644 --- a/man/mlr_pipeops_imputeconstant.Rd +++ b/man/mlr_pipeops_imputeconstant.Rd @@ -103,7 +103,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -165,6 +164,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_imputehist.Rd b/man/mlr_pipeops_imputehist.Rd index 0a7322fb0..353cff0ad 100644 --- a/man/mlr_pipeops_imputehist.Rd +++ b/man/mlr_pipeops_imputehist.Rd @@ -89,7 +89,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -151,6 +150,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_imputelearner.Rd b/man/mlr_pipeops_imputelearner.Rd index cbac8cc25..c89ec5470 100644 --- a/man/mlr_pipeops_imputelearner.Rd +++ b/man/mlr_pipeops_imputelearner.Rd @@ -128,7 +128,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -190,6 +189,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_imputemean.Rd b/man/mlr_pipeops_imputemean.Rd index 194b60ef9..864f88d6a 100644 --- a/man/mlr_pipeops_imputemean.Rd +++ b/man/mlr_pipeops_imputemean.Rd @@ -82,7 +82,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -144,6 +143,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_imputemedian.Rd b/man/mlr_pipeops_imputemedian.Rd index 9403aa358..833bbbdf5 100644 --- a/man/mlr_pipeops_imputemedian.Rd +++ b/man/mlr_pipeops_imputemedian.Rd @@ -82,7 +82,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -144,6 +143,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_imputemode.Rd b/man/mlr_pipeops_imputemode.Rd index 424f825c1..b9e64022b 100644 --- a/man/mlr_pipeops_imputemode.Rd +++ b/man/mlr_pipeops_imputemode.Rd @@ -89,7 +89,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -151,6 +150,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_imputeoor.Rd b/man/mlr_pipeops_imputeoor.Rd index 0708c63b5..de2a1c353 100644 --- a/man/mlr_pipeops_imputeoor.Rd +++ b/man/mlr_pipeops_imputeoor.Rd @@ -140,7 +140,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -202,6 +201,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_imputesample.Rd b/man/mlr_pipeops_imputesample.Rd index aba68ced6..28e32917c 100644 --- a/man/mlr_pipeops_imputesample.Rd +++ b/man/mlr_pipeops_imputesample.Rd @@ -84,7 +84,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -146,6 +145,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_kernelpca.Rd b/man/mlr_pipeops_kernelpca.Rd index 2bd269135..63af4bd04 100644 --- a/man/mlr_pipeops_kernelpca.Rd +++ b/man/mlr_pipeops_kernelpca.Rd @@ -98,7 +98,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -160,6 +159,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_learner.Rd b/man/mlr_pipeops_learner.Rd index bf06c1bbc..700ce6d76 100644 --- a/man/mlr_pipeops_learner.Rd +++ b/man/mlr_pipeops_learner.Rd @@ -124,7 +124,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -186,6 +185,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_learner_pi_cvplus.Rd b/man/mlr_pipeops_learner_pi_cvplus.Rd index b5482745c..39823652c 100644 --- a/man/mlr_pipeops_learner_pi_cvplus.Rd +++ b/man/mlr_pipeops_learner_pi_cvplus.Rd @@ -130,7 +130,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -192,6 +191,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_learner_quantiles.Rd b/man/mlr_pipeops_learner_quantiles.Rd index 71ff083b5..350e88e94 100644 --- a/man/mlr_pipeops_learner_quantiles.Rd +++ b/man/mlr_pipeops_learner_quantiles.Rd @@ -115,7 +115,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -177,6 +176,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_missind.Rd b/man/mlr_pipeops_missind.Rd index 0bd90bb70..229c9e024 100644 --- a/man/mlr_pipeops_missind.Rd +++ b/man/mlr_pipeops_missind.Rd @@ -107,7 +107,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -169,6 +168,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_modelmatrix.Rd b/man/mlr_pipeops_modelmatrix.Rd index 4c32ddde3..133334396 100644 --- a/man/mlr_pipeops_modelmatrix.Rd +++ b/man/mlr_pipeops_modelmatrix.Rd @@ -88,7 +88,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -150,6 +149,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_multiplicityexply.Rd b/man/mlr_pipeops_multiplicityexply.Rd index 7b838c7ce..591191905 100644 --- a/man/mlr_pipeops_multiplicityexply.Rd +++ b/man/mlr_pipeops_multiplicityexply.Rd @@ -89,7 +89,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -151,6 +150,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_multiplicityimply.Rd b/man/mlr_pipeops_multiplicityimply.Rd index 045e08044..f814b899d 100644 --- a/man/mlr_pipeops_multiplicityimply.Rd +++ b/man/mlr_pipeops_multiplicityimply.Rd @@ -95,7 +95,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -157,6 +156,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_mutate.Rd b/man/mlr_pipeops_mutate.Rd index dde4de93e..9b1190292 100644 --- a/man/mlr_pipeops_mutate.Rd +++ b/man/mlr_pipeops_mutate.Rd @@ -100,7 +100,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -162,6 +161,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_nearmiss.Rd b/man/mlr_pipeops_nearmiss.Rd index 4529a54ef..1d00c396c 100644 --- a/man/mlr_pipeops_nearmiss.Rd +++ b/man/mlr_pipeops_nearmiss.Rd @@ -102,7 +102,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -164,6 +163,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_nmf.Rd b/man/mlr_pipeops_nmf.Rd index ce48671fa..7e1595db5 100644 --- a/man/mlr_pipeops_nmf.Rd +++ b/man/mlr_pipeops_nmf.Rd @@ -140,7 +140,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -202,6 +201,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_nop.Rd b/man/mlr_pipeops_nop.Rd index 546122264..8ae887988 100644 --- a/man/mlr_pipeops_nop.Rd +++ b/man/mlr_pipeops_nop.Rd @@ -85,7 +85,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -147,6 +146,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_ovrsplit.Rd b/man/mlr_pipeops_ovrsplit.Rd index 59a91b883..d4fe42a36 100644 --- a/man/mlr_pipeops_ovrsplit.Rd +++ b/man/mlr_pipeops_ovrsplit.Rd @@ -102,7 +102,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -164,6 +163,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_ovrunite.Rd b/man/mlr_pipeops_ovrunite.Rd index 965a13c31..86f7a613b 100644 --- a/man/mlr_pipeops_ovrunite.Rd +++ b/man/mlr_pipeops_ovrunite.Rd @@ -97,7 +97,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -159,6 +158,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_pca.Rd b/man/mlr_pipeops_pca.Rd index 04e4004ea..3c3c544c0 100644 --- a/man/mlr_pipeops_pca.Rd +++ b/man/mlr_pipeops_pca.Rd @@ -99,7 +99,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -161,6 +160,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_proxy.Rd b/man/mlr_pipeops_proxy.Rd index 66f40eeb9..7dab5cab5 100644 --- a/man/mlr_pipeops_proxy.Rd +++ b/man/mlr_pipeops_proxy.Rd @@ -107,7 +107,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -169,6 +168,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_quantilebin.Rd b/man/mlr_pipeops_quantilebin.Rd index ba3b5b9fd..074202f5a 100644 --- a/man/mlr_pipeops_quantilebin.Rd +++ b/man/mlr_pipeops_quantilebin.Rd @@ -87,7 +87,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -149,6 +148,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_randomprojection.Rd b/man/mlr_pipeops_randomprojection.Rd index fd941ea28..7f506046a 100644 --- a/man/mlr_pipeops_randomprojection.Rd +++ b/man/mlr_pipeops_randomprojection.Rd @@ -99,7 +99,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -161,6 +160,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_randomresponse.Rd b/man/mlr_pipeops_randomresponse.Rd index 031a48273..33794cc37 100644 --- a/man/mlr_pipeops_randomresponse.Rd +++ b/man/mlr_pipeops_randomresponse.Rd @@ -111,7 +111,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -173,6 +172,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_regravg.Rd b/man/mlr_pipeops_regravg.Rd index 90f7e2426..7a71b0ce0 100644 --- a/man/mlr_pipeops_regravg.Rd +++ b/man/mlr_pipeops_regravg.Rd @@ -97,7 +97,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -159,6 +158,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_removeconstants.Rd b/man/mlr_pipeops_removeconstants.Rd index cb1aa976a..76b650664 100644 --- a/man/mlr_pipeops_removeconstants.Rd +++ b/man/mlr_pipeops_removeconstants.Rd @@ -87,7 +87,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -149,6 +148,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_renamecolumns.Rd b/man/mlr_pipeops_renamecolumns.Rd index 6d39fb21f..172eb906d 100644 --- a/man/mlr_pipeops_renamecolumns.Rd +++ b/man/mlr_pipeops_renamecolumns.Rd @@ -86,7 +86,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -148,6 +147,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_replicate.Rd b/man/mlr_pipeops_replicate.Rd index f95c23b26..521fbee81 100644 --- a/man/mlr_pipeops_replicate.Rd +++ b/man/mlr_pipeops_replicate.Rd @@ -79,7 +79,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -141,6 +140,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_rowapply.Rd b/man/mlr_pipeops_rowapply.Rd index bece84fb3..d47813c20 100644 --- a/man/mlr_pipeops_rowapply.Rd +++ b/man/mlr_pipeops_rowapply.Rd @@ -85,7 +85,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -147,6 +146,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_scale.Rd b/man/mlr_pipeops_scale.Rd index 41c215e90..ed80907ac 100644 --- a/man/mlr_pipeops_scale.Rd +++ b/man/mlr_pipeops_scale.Rd @@ -106,7 +106,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -168,6 +167,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_scalemaxabs.Rd b/man/mlr_pipeops_scalemaxabs.Rd index 5ca59d727..b9e69562a 100644 --- a/man/mlr_pipeops_scalemaxabs.Rd +++ b/man/mlr_pipeops_scalemaxabs.Rd @@ -76,7 +76,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -138,6 +137,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_scalerange.Rd b/man/mlr_pipeops_scalerange.Rd index 8e02086c4..376a46314 100644 --- a/man/mlr_pipeops_scalerange.Rd +++ b/man/mlr_pipeops_scalerange.Rd @@ -86,7 +86,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -148,6 +147,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_select.Rd b/man/mlr_pipeops_select.Rd index 5352b4fcb..205c5c535 100644 --- a/man/mlr_pipeops_select.Rd +++ b/man/mlr_pipeops_select.Rd @@ -98,7 +98,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -160,6 +159,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_smote.Rd b/man/mlr_pipeops_smote.Rd index 60d7829c2..411155bd0 100644 --- a/man/mlr_pipeops_smote.Rd +++ b/man/mlr_pipeops_smote.Rd @@ -104,7 +104,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -166,6 +165,7 @@ Other PipeOps: \code{\link{mlr_pipeops_select}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_smotenc.Rd b/man/mlr_pipeops_smotenc.Rd index a8afc77ad..ed23d5d1d 100644 --- a/man/mlr_pipeops_smotenc.Rd +++ b/man/mlr_pipeops_smotenc.Rd @@ -116,7 +116,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -178,6 +177,7 @@ Other PipeOps: \code{\link{mlr_pipeops_select}}, \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_spatialsign.Rd b/man/mlr_pipeops_spatialsign.Rd index e5f84cc05..e457cafe8 100644 --- a/man/mlr_pipeops_spatialsign.Rd +++ b/man/mlr_pipeops_spatialsign.Rd @@ -81,7 +81,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -143,6 +142,7 @@ Other PipeOps: \code{\link{mlr_pipeops_select}}, \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_basissplines.Rd b/man/mlr_pipeops_splines.Rd similarity index 93% rename from man/mlr_pipeops_basissplines.Rd rename to man/mlr_pipeops_splines.Rd index efa562fb6..ae5ce2071 100644 --- a/man/mlr_pipeops_basissplines.Rd +++ b/man/mlr_pipeops_splines.Rd @@ -1,8 +1,8 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/PipeOpBasisSplines.R -\name{mlr_pipeops_basissplines} -\alias{mlr_pipeops_basissplines} -\alias{PipeOpBasisSplines} +% Please edit documentation in R/PipeOpSplines.R +\name{mlr_pipeops_splines} +\alias{mlr_pipeops_splines} +\alias{PipeOpSplines} \title{Transforms Columns using Splines Methods by Constructing a Model Matrix} \format{ \code{\link[R6:R6Class]{R6Class}} object inheriting from \code{\link{PipeOpTaskPreprocSimple}}/\code{\link{PipeOpTaskPreproc}}/\code{\link{PipeOp}}. @@ -17,7 +17,7 @@ Transforms Columns using Splines Methods by Constructing a Model Matrix. }\if{html}{\out{}} \itemize{ \item \code{id} :: \code{character(1)}\cr -Identifier of resulting object, default \code{"basissplines"}. +Identifier of resulting object, default \code{"splines"}. \item \code{param_vals} :: named \code{list}\cr List of hyperparameter settings, overwriting the hyperparameter settings that would otherwise be set during construction. Default \code{list()}. } @@ -39,9 +39,9 @@ The \verb{$state} is a named \code{list} with the \verb{$state} elements inherit The parameters are the parameters inherited from \code{\link{PipeOpTaskPreproc}}, as well as: \itemize{ -\item \code{hp} :: \code{character(1)} \cr +\item \code{factor} :: \code{character(1)} \cr "Polynomial" when polynomial splines are applied \code{\link[splines:bs]{splines::bs}} or -"Cubic" when natural cubic splines are applied \code{\link[splines:bs]{splines::bs}}. +"natural" when natural natural splines are applied \code{\link[splines:bs]{splines::bs}}. Default is "polynomial". \item \code{df} :: \code{integer(1)} \cr Number of degrees of freedom for calculation of splines basis matrix. @@ -69,7 +69,7 @@ Only methods inherited from \code{\link{PipeOpTaskPreprocSimple}}/\code{\link{Pi library("mlr3") task = tsk("iris") -pop = po("basissplines") +pop = po("splines") pop$train(list(task))[[1]]$data() diff --git a/man/mlr_pipeops_subsample.Rd b/man/mlr_pipeops_subsample.Rd index 15a09a8af..384bcea67 100644 --- a/man/mlr_pipeops_subsample.Rd +++ b/man/mlr_pipeops_subsample.Rd @@ -106,7 +106,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -169,6 +168,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, \code{\link{mlr_pipeops_targettrafoscalerange}}, diff --git a/man/mlr_pipeops_targetinvert.Rd b/man/mlr_pipeops_targetinvert.Rd index b12577de6..57e61b9c4 100644 --- a/man/mlr_pipeops_targetinvert.Rd +++ b/man/mlr_pipeops_targetinvert.Rd @@ -76,7 +76,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -139,6 +138,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetmutate}}, \code{\link{mlr_pipeops_targettrafoscalerange}}, diff --git a/man/mlr_pipeops_targetmutate.Rd b/man/mlr_pipeops_targetmutate.Rd index 9dad6c113..9c4abf4d8 100644 --- a/man/mlr_pipeops_targetmutate.Rd +++ b/man/mlr_pipeops_targetmutate.Rd @@ -124,7 +124,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -187,6 +186,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targettrafoscalerange}}, diff --git a/man/mlr_pipeops_targettrafoscalerange.Rd b/man/mlr_pipeops_targettrafoscalerange.Rd index 1c46e5209..e00d8c427 100644 --- a/man/mlr_pipeops_targettrafoscalerange.Rd +++ b/man/mlr_pipeops_targettrafoscalerange.Rd @@ -95,7 +95,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -158,6 +157,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_textvectorizer.Rd b/man/mlr_pipeops_textvectorizer.Rd index d04b91b7d..80b720cbc 100644 --- a/man/mlr_pipeops_textvectorizer.Rd +++ b/man/mlr_pipeops_textvectorizer.Rd @@ -200,7 +200,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -263,6 +262,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_threshold.Rd b/man/mlr_pipeops_threshold.Rd index ff4dd28cf..afebac528 100644 --- a/man/mlr_pipeops_threshold.Rd +++ b/man/mlr_pipeops_threshold.Rd @@ -89,7 +89,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -152,6 +151,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_tomek.Rd b/man/mlr_pipeops_tomek.Rd index e6998de47..e97db90a0 100644 --- a/man/mlr_pipeops_tomek.Rd +++ b/man/mlr_pipeops_tomek.Rd @@ -95,7 +95,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -158,6 +157,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_tunethreshold.Rd b/man/mlr_pipeops_tunethreshold.Rd index 9f85e100e..ae8a76973 100644 --- a/man/mlr_pipeops_tunethreshold.Rd +++ b/man/mlr_pipeops_tunethreshold.Rd @@ -115,7 +115,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -178,6 +177,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_unbranch.Rd b/man/mlr_pipeops_unbranch.Rd index 8ef0045f6..c6d2d7984 100644 --- a/man/mlr_pipeops_unbranch.Rd +++ b/man/mlr_pipeops_unbranch.Rd @@ -88,7 +88,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -151,6 +150,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_updatetarget.Rd b/man/mlr_pipeops_updatetarget.Rd index 2c9414cea..39a2e9030 100644 --- a/man/mlr_pipeops_updatetarget.Rd +++ b/man/mlr_pipeops_updatetarget.Rd @@ -108,7 +108,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -171,6 +170,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_vtreat.Rd b/man/mlr_pipeops_vtreat.Rd index d6a52cbcd..e2e8194d3 100644 --- a/man/mlr_pipeops_vtreat.Rd +++ b/man/mlr_pipeops_vtreat.Rd @@ -162,7 +162,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -225,6 +224,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/man/mlr_pipeops_yeojohnson.Rd b/man/mlr_pipeops_yeojohnson.Rd index 163647673..c4f792b5b 100644 --- a/man/mlr_pipeops_yeojohnson.Rd +++ b/man/mlr_pipeops_yeojohnson.Rd @@ -98,7 +98,6 @@ Other PipeOps: \code{\link{PipeOpTaskPreprocSimple}}, \code{\link{mlr_pipeops}}, \code{\link{mlr_pipeops_adas}}, -\code{\link{mlr_pipeops_basissplines}}, \code{\link{mlr_pipeops_blsmote}}, \code{\link{mlr_pipeops_boxcox}}, \code{\link{mlr_pipeops_branch}}, @@ -161,6 +160,7 @@ Other PipeOps: \code{\link{mlr_pipeops_smote}}, \code{\link{mlr_pipeops_smotenc}}, \code{\link{mlr_pipeops_spatialsign}}, +\code{\link{mlr_pipeops_splines}}, \code{\link{mlr_pipeops_subsample}}, \code{\link{mlr_pipeops_targetinvert}}, \code{\link{mlr_pipeops_targetmutate}}, diff --git a/tests/testthat/test_pipeop_basissplines.R b/tests/testthat/test_pipeop_splines.R similarity index 76% rename from tests/testthat/test_pipeop_basissplines.R rename to tests/testthat/test_pipeop_splines.R index 70634428b..e447e936a 100644 --- a/tests/testthat/test_pipeop_basissplines.R +++ b/tests/testthat/test_pipeop_splines.R @@ -1,9 +1,8 @@ -context("PipeOpBasisSplines") +context("PipeOpSplines") -test_that("PipeOpBasisSplines - basic properties", { - browser() +test_that("PipeOpSplines - basic properties", { task = mlr_tasks$get("mtcars") - expect_datapreproc_pipeop_class(PipeOpBasisSplines, task = task, deterministic_predict = FALSE) + expect_datapreproc_pipeop_class(PipeOpSplines, task = task, deterministic_predict = FALSE) }) test_that("Error when trying to pass degree argument while factor = cubic", { @@ -11,11 +10,11 @@ test_that("Error when trying to pass degree argument while factor = cubic", { }) test_that("results are identical as when calculating by hand", { - degree = c(1, 2, 3, 4, 5) - df = degree + 3 + degree = list(1, 2, 3, 4, 5) + df = list(1, 2, 3, 4, 5) task = tsk("iris") for (j in degree) { - po = po("basissplines", df = df[[j]], degree = degree[[j]]) + po = po("splines", type = "polynomial", df = df[[j]], degree = degree[[j]]) result = po$train(list(task))[[1]]$data()[, -1] result_calc = as.data.table(stats::model.matrix( Species ~ splines::bs(Petal.Length, df = df[[j]], degree = degree[[j]]) + @@ -29,13 +28,13 @@ test_that("results are identical as when calculating by hand", { expect_equal(result, result_calc) } for (j in df) { - po = po("basissplines", df = j) + po = po("splines", df = j + 1) result = po$train(list(task))[[1]]$data()[, -1] result_calc = as.data.table(stats::model.matrix( - Species ~ splines::bs(Petal.Length, df = j) + - splines::bs(Petal.Width, df = j) + - splines::bs(Sepal.Length, df = j) + - splines::bs(Sepal.Width, df = j), + Species ~ splines::ns(Petal.Length, df = j + 1) + + splines::ns(Petal.Width, df = j + 1) + + splines::ns(Sepal.Length, df = j + 1) + + splines::ns(Sepal.Width, df = j + 1), data = iris )) data.table::setnames(result, rep("", ncol(result))) @@ -51,7 +50,7 @@ test_that("Selector", { factor = list("polynomial", "cubic") for (i in seq_along(factor)) { for (j in seq_along(selector)) { - po = po("basissplines", affect_columns = selector_grep(selector[[j]])) + po = po("splines", affect_columns = selector_grep(selector[[j]])) single_string = paste0(if (factor[[i]] == "polynomial") "splines::bs(dt[[" else "splines::ns(dt[[", selector, "]]", ")") result = po$train(list(task))[[1]]$data()[, -1] result_calc = as.data.table(stats::model.matrix( From c3847ba267b47fd52bbde8e9b867811fa1c66ed0 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Thu, 18 Sep 2025 08:48:05 +0200 Subject: [PATCH 13/35] fixed tests --- tests/testthat/test_pipeop_splines.R | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tests/testthat/test_pipeop_splines.R b/tests/testthat/test_pipeop_splines.R index e447e936a..0a6b4c557 100644 --- a/tests/testthat/test_pipeop_splines.R +++ b/tests/testthat/test_pipeop_splines.R @@ -1,7 +1,7 @@ context("PipeOpSplines") test_that("PipeOpSplines - basic properties", { - task = mlr_tasks$get("mtcars") + task = mlr_tasks$get("iris") expect_datapreproc_pipeop_class(PipeOpSplines, task = task, deterministic_predict = FALSE) }) @@ -47,14 +47,13 @@ test_that("results are identical as when calculating by hand", { test_that("Selector", { selector = list("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width") task = tsk("iris") - factor = list("polynomial", "cubic") + factor = list("polynomial", "natural") for (i in seq_along(factor)) { for (j in seq_along(selector)) { - po = po("splines", affect_columns = selector_grep(selector[[j]])) - single_string = paste0(if (factor[[i]] == "polynomial") "splines::bs(dt[[" else "splines::ns(dt[[", selector, "]]", ")") + po = po("splines", type = factor[[i]], affect_columns = selector_grep(selector[[j]])) result = po$train(list(task))[[1]]$data()[, -1] result_calc = as.data.table(stats::model.matrix( - as.formula(paste("Species ~ splines::bs(", selector[[j]], ")")), + as.formula(paste0(if (factor[[i]] == "polynomial") {"Species ~ splines::bs("} else {"Species ~ splines::ns("}, selector[[j]], ")")), data = iris )) relevant_result = as.data.table(intersect(result_calc, result)) From 7ef4a5460c252a22784ffcc69a2ab646db538723 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Thu, 18 Sep 2025 10:50:49 +0200 Subject: [PATCH 14/35] added packages in super$initialize and moved testing code to new file in attic --- R/PipeOpSplines.R | 85 +--------------------------- attic/PipeOpSPlines - testing code.R | 83 +++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 84 deletions(-) create mode 100644 attic/PipeOpSPlines - testing code.R diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index 8b4c84c35..b9b910a75 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -68,7 +68,7 @@ PipeOpSplines = R6Class("PipeOpSplines", df = p_int(lower = 1, upper = Inf, special_vals = list(NULL), init = NULL, tags = "train"), degree = p_int(lower = 1, upper = Inf, depends = type == "polynomial", tags = "train") ) - super$initialize(id = id, param_set = ps, param_vals = param_vals) + super$initialize(id = id, param_set = ps, param_vals = param_vals, packages = c("splines", "stats")) } ), private = list( @@ -96,86 +96,3 @@ PipeOpSplines = R6Class("PipeOpSplines", ) mlr_pipeops$add("splines", PipeOpSplines) - -# po = po("splines", df = 1) -# po_result = po$train(list(tsk("iris")))[[1]]$data() - -# po = po("splines", type = "polynomial", df = 2, degree = 4) -# po_result = po$train(list(tsk("iris")))[[1]]$data() -# po_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length) + splines::bs(Sepal.Width) + splines::bs(Petal.Length) + splines::bs(Petal.Width), data = iris) - -# selecting columns -# sel_cyl = selector_grep("Sepal.Length") -# pos = po("basissplines", affect_columns = sel_cyl) -# pos_result = pos$train(list(tsk("iris")))[[1]]$data() -# pos_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length), data = iris) - - -# podf3 = po("basissplines", df = 3) -# podf3_result = podf3$train(list(tsk("iris")))[[1]]$data() -# podf3_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, df = 3) + splines::bs(Sepal.Width, df = 3) + splines::bs(Petal.Length, df = 3) + splines::bs(Petal.Width, df = 3), data = iris) - -# podf4 = po("basissplines", df = 4) -# podf4_result = podf4$train(list(tsk("iris")))[[1]]$data() -# podf4_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, df = 4) + splines::bs(Sepal.Width, df = 4) + splines::bs(Petal.Length, df = 4) + splines::bs(Petal.Width, df = 4), data = iris) - -# podf7 = po("basissplines", df = 7) -# podf7_result = podf7$train(list(tsk("iris")))[[1]]$data() -# podf7_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, df = 7) + splines::bs(Sepal.Width, df = 7) + splines::bs(Petal.Length, df = 7) + splines::bs(Petal.Width, df = 7), data = iris) - -# podeg3df2 = po("basissplines", degree = 3, df = 2) -# podeg3df2_result = podeg3df2$train(list(tsk("iris")))[[1]]$data() -# podeg3df2_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, degree = 3, df = 2) + splines::bs(Sepal.Width, degree = 3, df = 2) + splines::bs(Petal.Length, degree = 3, df = 2) + splines::bs(Petal.Width, degree = 3, df = 2), data = iris) - - -# podeg5df8 = po("basissplines", degree = 5, df = 8) -# podeg5df8_result = podeg5df8$train(list(tsk("iris")))[[1]]$data() -# podeg5df8_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, degree = 5, df = 8) + splines::bs(Sepal.Width, degree = 5, df = 8) + splines::bs(Petal.Length, degree = 5, df = 8) + splines::bs(Petal.Width, degree = 5, df = 8), data = iris) - -# pons = po("basissplines", factor = "natural") -# pons_result = pons$train(list(tsk("iris")))[[1]]$data() -# pons_result_calc = stats::model.matrix(Species ~ splines::ns(Sepal.Length) + splines::ns(Sepal.Width) + splines::ns(Petal.Length) + splines::ns(Petal.Width), data = iris) - -# pons_error = po("basissplines", factor = "natural", df = 3, degree = 4) - -# ponsdf5 = po("basissplines", factor = "natural", df = 5) -# ponsdf5_result = ponsdf5$train(list(tsk("iris")))[[1]]$data() -# ponsdf5_result_calc = stats::model.matrix(Species ~ splines::ns(Sepal.Length, df = 5) + splines::ns(Sepal.Width, df = 5) + splines::ns(Petal.Length, df = 5) + splines::ns(Petal.Width, df = 5), data = iris) - - - - -# pop = po("basissplines", df = 5) -# pop$train(list(tsk("mtcars")))[[1]]$data() - -# poc = po("basissplines", df = 4, factor = "natural") -# poc$train(list(tsk("mtcars")))[[1]]$data() - -# df als hyperparameterf -# das ziel ist es dass wir diese model.matrix für alle features kriegen -# original features behalten dann feature_union ==> egaluser verantwortung - - -#splines.cyl.1 - -# task = tsk("mtcars") - -# list(task)[[1]]$data() -# pop = po("modelmatrix", formula = ~ splines::ns(task$data()$cyl, 2) + splines::ns(task$data()$hp, 2) + -# splines::ns(task$data()$disp, 2) + splines::ns(task$data()$drat, 2) + splines::ns(task$data()$wt, 2) + -# splines::ns(task$data()$qsec, 2) + splines::ns(task$data()$vs, 2) + splines::ns(task$data()$am, 2) + -# splines::ns(task$data()$gear, 2) + splines::ns(task$data()$carb, 2)) -# pop$train(list(task))[[1]]$data() - -# pob = po("modelmatrix", formula = ~ splines::bs(task$data()$cyl, 2) + splines::bs(task$data()$hp, 2) + -# splines::bs(task$data()$disp, 2) + splines::bs(task$data()$drat, 2) + splines::bs(task$data()$wt, 2) + -# splines::bs(task$data()$qsec, 2) + splines::bs(task$data()$vs, 2) + splines::bs(task$data()$am, 2) + -# splines::bs(task$data()$gear, 2) + splines::bs(task$data()$carb, 2)) - -# pob$train(list(task))[[1]]$data() - - -# fit <- lm(mpg ~ splines::ns(cyl, df = 2) + splines::ns(hp, df = 2), data = mtcars) -# model.matrix(fit) # this is what we want to get as a result from PipeOpSplineBasis - -# as.data.frame(stats::model.matrix(mpg ~ splines::ns(cyl, 2) + splines::ns(task$data()$hp, 2), data = mtcars)) diff --git a/attic/PipeOpSPlines - testing code.R b/attic/PipeOpSPlines - testing code.R new file mode 100644 index 000000000..cf2b0141b --- /dev/null +++ b/attic/PipeOpSPlines - testing code.R @@ -0,0 +1,83 @@ + +# po = po("splines", df = 1) +# po_result = po$train(list(tsk("iris")))[[1]]$data() + +# po = po("splines", type = "polynomial", df = 2, degree = 4) +# po_result = po$train(list(tsk("iris")))[[1]]$data() +# po_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length) + splines::bs(Sepal.Width) + splines::bs(Petal.Length) + splines::bs(Petal.Width), data = iris) + +# selecting columns +# sel_cyl = selector_grep("Sepal.Length") +# pos = po("basissplines", affect_columns = sel_cyl) +# pos_result = pos$train(list(tsk("iris")))[[1]]$data() +# pos_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length), data = iris) + + +# podf3 = po("basissplines", df = 3) +# podf3_result = podf3$train(list(tsk("iris")))[[1]]$data() +# podf3_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, df = 3) + splines::bs(Sepal.Width, df = 3) + splines::bs(Petal.Length, df = 3) + splines::bs(Petal.Width, df = 3), data = iris) + +# podf4 = po("basissplines", df = 4) +# podf4_result = podf4$train(list(tsk("iris")))[[1]]$data() +# podf4_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, df = 4) + splines::bs(Sepal.Width, df = 4) + splines::bs(Petal.Length, df = 4) + splines::bs(Petal.Width, df = 4), data = iris) + +# podf7 = po("basissplines", df = 7) +# podf7_result = podf7$train(list(tsk("iris")))[[1]]$data() +# podf7_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, df = 7) + splines::bs(Sepal.Width, df = 7) + splines::bs(Petal.Length, df = 7) + splines::bs(Petal.Width, df = 7), data = iris) + +# podeg3df2 = po("basissplines", degree = 3, df = 2) +# podeg3df2_result = podeg3df2$train(list(tsk("iris")))[[1]]$data() +# podeg3df2_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, degree = 3, df = 2) + splines::bs(Sepal.Width, degree = 3, df = 2) + splines::bs(Petal.Length, degree = 3, df = 2) + splines::bs(Petal.Width, degree = 3, df = 2), data = iris) + + +# podeg5df8 = po("basissplines", degree = 5, df = 8) +# podeg5df8_result = podeg5df8$train(list(tsk("iris")))[[1]]$data() +# podeg5df8_result_calc = stats::model.matrix(Species ~ splines::bs(Sepal.Length, degree = 5, df = 8) + splines::bs(Sepal.Width, degree = 5, df = 8) + splines::bs(Petal.Length, degree = 5, df = 8) + splines::bs(Petal.Width, degree = 5, df = 8), data = iris) + +# pons = po("basissplines", factor = "natural") +# pons_result = pons$train(list(tsk("iris")))[[1]]$data() +# pons_result_calc = stats::model.matrix(Species ~ splines::ns(Sepal.Length) + splines::ns(Sepal.Width) + splines::ns(Petal.Length) + splines::ns(Petal.Width), data = iris) + +# pons_error = po("basissplines", factor = "natural", df = 3, degree = 4) + +# ponsdf5 = po("basissplines", factor = "natural", df = 5) +# ponsdf5_result = ponsdf5$train(list(tsk("iris")))[[1]]$data() +# ponsdf5_result_calc = stats::model.matrix(Species ~ splines::ns(Sepal.Length, df = 5) + splines::ns(Sepal.Width, df = 5) + splines::ns(Petal.Length, df = 5) + splines::ns(Petal.Width, df = 5), data = iris) + + + + +# pop = po("basissplines", df = 5) +# pop$train(list(tsk("mtcars")))[[1]]$data() + +# poc = po("basissplines", df = 4, factor = "natural") +# poc$train(list(tsk("mtcars")))[[1]]$data() + +# df als hyperparameterf +# das ziel ist es dass wir diese model.matrix für alle features kriegen +# original features behalten dann feature_union ==> egaluser verantwortung + + +#splines.cyl.1 + +# task = tsk("mtcars") + +# list(task)[[1]]$data() +# pop = po("modelmatrix", formula = ~ splines::ns(task$data()$cyl, 2) + splines::ns(task$data()$hp, 2) + +# splines::ns(task$data()$disp, 2) + splines::ns(task$data()$drat, 2) + splines::ns(task$data()$wt, 2) + +# splines::ns(task$data()$qsec, 2) + splines::ns(task$data()$vs, 2) + splines::ns(task$data()$am, 2) + +# splines::ns(task$data()$gear, 2) + splines::ns(task$data()$carb, 2)) +# pop$train(list(task))[[1]]$data() + +# pob = po("modelmatrix", formula = ~ splines::bs(task$data()$cyl, 2) + splines::bs(task$data()$hp, 2) + +# splines::bs(task$data()$disp, 2) + splines::bs(task$data()$drat, 2) + splines::bs(task$data()$wt, 2) + +# splines::bs(task$data()$qsec, 2) + splines::bs(task$data()$vs, 2) + splines::bs(task$data()$am, 2) + +# splines::bs(task$data()$gear, 2) + splines::bs(task$data()$carb, 2)) + +# pob$train(list(task))[[1]]$data() + + +# fit <- lm(mpg ~ splines::ns(cyl, df = 2) + splines::ns(hp, df = 2), data = mtcars) +# model.matrix(fit) # this is what we want to get as a result from PipeOpSplineBasis + +# as.data.frame(stats::model.matrix(mpg ~ splines::ns(cyl, 2) + splines::ns(task$data()$hp, 2), data = mtcars)) From 892e93100b7e33a6febd77871ef7b0a83f37dc98 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Fri, 19 Sep 2025 09:14:58 +0200 Subject: [PATCH 15/35] fixed column renaming of PipeOpBasisSplines --- R/PipeOpSplines.R | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index b9b910a75..745fe659b 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -9,7 +9,7 @@ #' #' @section Construction: #' ``` -#' po("basissplines", param_vals = list()) +#' po("splines", param_vals = list()) #' ``` #' #' * `id` :: `character(1)`\cr @@ -77,11 +77,9 @@ PipeOpSplines = R6Class("PipeOpSplines", single_string = paste0(if (pv$type == "natural") "splines::ns(dt[[" else "splines::bs(dt[[", seq_along(dt), "]]", if (!is.null(pv$df)) " , df = ", pv$df, if (!is.null(pv$degree)) ", degree = ", pv$degree, ")") string = paste(" ~ ", paste(single_string, collapse = " + ")) result = as.data.frame(stats::model.matrix(formula(string), data = dt)) - max_df = max(regmatches(colnames(result), regexpr("([0-9]+$|$)", colnames(result)))) - if (!is.numeric(max_df)) { + max_df = as.numeric(max(regmatches(colnames(result), regexpr("([0-9]+$|$)", colnames(result))))) + if (is.na(max_df)) { max_df = 1 - } else { - max_df = as.numeric(max_df) } k = 1 for (j in colnames(dt)) { From 73b80a5df0e3e2ccce4ed181ad7a4d69db2719af Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Sun, 21 Sep 2025 21:35:31 +0200 Subject: [PATCH 16/35] removed pop$state from examples --- R/PipeOpSplines.R | 1 - 1 file changed, 1 deletion(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index 745fe659b..86cddcd0c 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -53,7 +53,6 @@ #' #' pop$train(list(task))[[1]]$data() #' -#' pop$state #' @family PipeOps #' @template seealso_pipeopslist #' @include PipeOpTaskPreproc.R From 5065e7f52fd3f3b8b081aef72c65a00802870275 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Mon, 22 Sep 2025 07:35:12 +0200 Subject: [PATCH 17/35] fixes in PipeOpSplines Tests --- tests/testthat/test_pipeop_splines.R | 44 ++++++++++++++-------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/tests/testthat/test_pipeop_splines.R b/tests/testthat/test_pipeop_splines.R index 0a6b4c557..6a803960b 100644 --- a/tests/testthat/test_pipeop_splines.R +++ b/tests/testthat/test_pipeop_splines.R @@ -14,13 +14,13 @@ test_that("results are identical as when calculating by hand", { df = list(1, 2, 3, 4, 5) task = tsk("iris") for (j in degree) { - po = po("splines", type = "polynomial", df = df[[j]], degree = degree[[j]]) + po = po("splines", type = "polynomial", df = j, degree = j) result = po$train(list(task))[[1]]$data()[, -1] result_calc = as.data.table(stats::model.matrix( - Species ~ splines::bs(Petal.Length, df = df[[j]], degree = degree[[j]]) + - splines::bs(Petal.Width, df = df[[j]], degree = degree[[j]]) + - splines::bs(Sepal.Length, df = df[[j]], degree = degree[[j]]) + - splines::bs(Sepal.Width, df = df[[j]], degree = degree[[j]]), + Species ~ splines::bs(Petal.Length, df = j, degree = j) + + splines::bs(Petal.Width, df = j, degree = j) + + splines::bs(Sepal.Length, df = j, degree = j) + + splines::bs(Sepal.Width, df = j, degree = j), data = iris )) data.table::setnames(result, rep("", ncol(result))) @@ -28,13 +28,13 @@ test_that("results are identical as when calculating by hand", { expect_equal(result, result_calc) } for (j in df) { - po = po("splines", df = j + 1) + po = po("splines", df = j) result = po$train(list(task))[[1]]$data()[, -1] result_calc = as.data.table(stats::model.matrix( - Species ~ splines::ns(Petal.Length, df = j + 1) + - splines::ns(Petal.Width, df = j + 1) + - splines::ns(Sepal.Length, df = j + 1) + - splines::ns(Sepal.Width, df = j + 1), + Species ~ splines::ns(Petal.Length, df = j) + + splines::ns(Petal.Width, df = j) + + splines::ns(Sepal.Length, df = j) + + splines::ns(Sepal.Width, df = j), data = iris )) data.table::setnames(result, rep("", ncol(result))) @@ -49,17 +49,17 @@ test_that("Selector", { task = tsk("iris") factor = list("polynomial", "natural") for (i in seq_along(factor)) { - for (j in seq_along(selector)) { - po = po("splines", type = factor[[i]], affect_columns = selector_grep(selector[[j]])) - result = po$train(list(task))[[1]]$data()[, -1] - result_calc = as.data.table(stats::model.matrix( - as.formula(paste0(if (factor[[i]] == "polynomial") {"Species ~ splines::bs("} else {"Species ~ splines::ns("}, selector[[j]], ")")), - data = iris - )) - relevant_result = as.data.table(intersect(result_calc, result)) - data.table::setnames(result_calc, rep("", ncol(result_calc))) - data.table::setnames(relevant_result, rep("", ncol(relevant_result))) - expect_equal(result_calc, relevant_result) - } + for (j in seq_along(selector)) { + po = po("splines", type = factor[[i]], affect_columns = selector_grep(selector[[j]])) + result = po$train(list(task))[[1]]$data()[, -1] + result_calc = as.data.table(stats::model.matrix( + as.formula(paste0(if (factor[[i]] == "polynomial") {"Species ~ splines::bs("} else {"Species ~ splines::ns("}, selector[[j]], ")")), + data = iris + )) + relevant_result = as.data.table(intersect(result_calc, result)) + data.table::setnames(result_calc, rep("", ncol(result_calc))) + data.table::setnames(relevant_result, rep("", ncol(relevant_result))) + expect_equal(result_calc, relevant_result) + } } }) From 99c325445a15b362e51e25dbfc362d1833ee6357 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Mon, 22 Sep 2025 07:40:07 +0200 Subject: [PATCH 18/35] added skip_if_not_installed in tests --- tests/testthat/test_pipeop_splines.R | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/testthat/test_pipeop_splines.R b/tests/testthat/test_pipeop_splines.R index 6a803960b..483db7796 100644 --- a/tests/testthat/test_pipeop_splines.R +++ b/tests/testthat/test_pipeop_splines.R @@ -1,15 +1,18 @@ context("PipeOpSplines") test_that("PipeOpSplines - basic properties", { + skip_if_not_installed("splines") task = mlr_tasks$get("iris") expect_datapreproc_pipeop_class(PipeOpSplines, task = task, deterministic_predict = FALSE) }) -test_that("Error when trying to pass degree argument while factor = cubic", { - expect_error(po("basissplines", factor = "cubic", degree = 3)) +test_that("Error when trying to pass degree argument while factor = natural", { + skip_if_not_installed("splines") + expect_error(po("basissplines", factor = "natural", degree = 3)) }) test_that("results are identical as when calculating by hand", { + skip_if_not_installed("splines") degree = list(1, 2, 3, 4, 5) df = list(1, 2, 3, 4, 5) task = tsk("iris") @@ -45,6 +48,7 @@ test_that("results are identical as when calculating by hand", { test_that("Selector", { + skip_if_not_installed("splines") selector = list("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width") task = tsk("iris") factor = list("polynomial", "natural") From 26582efbeccb42298c8aba03e82ddd52c75d68f7 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Fri, 26 Sep 2025 17:40:15 +0200 Subject: [PATCH 19/35] before restructuring it to a PipeOpTaskPreproc-object --- R/PipeOpSplines.R | 74 +++++++++++++++++++++++----- tests/testthat/test_pipeop_splines.R | 3 +- 2 files changed, 63 insertions(+), 14 deletions(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index 86cddcd0c..587b5bdd6 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -65,31 +65,79 @@ PipeOpSplines = R6Class("PipeOpSplines", ps = ps( type = p_fct(levels = c("polynomial", "natural"), init = "natural", tags = c("train", "required")), df = p_int(lower = 1, upper = Inf, special_vals = list(NULL), init = NULL, tags = "train"), - degree = p_int(lower = 1, upper = Inf, depends = type == "polynomial", tags = "train") + knots = p_uty(special_vals = list(NULL), init = NULL, tags = "train"), + degree = p_int(lower = 1, upper = Inf, default = 3, depends = type == "polynomial", tags = "train"), + intercept = p_lgl(init = FALSE, tags = "train"), + Boundary.knots = p_uty(init = NULL, tags = "train") ) super$initialize(id = id, param_set = ps, param_vals = param_vals, packages = c("splines", "stats")) } ), private = list( .transform_dt = function(dt, levels) { + browser() + result = list() + bk = list() pv = self$param_set$get_values(tags = "train") - single_string = paste0(if (pv$type == "natural") "splines::ns(dt[[" else "splines::bs(dt[[", seq_along(dt), "]]", if (!is.null(pv$df)) " , df = ", pv$df, if (!is.null(pv$degree)) ", degree = ", pv$degree, ")") - string = paste(" ~ ", paste(single_string, collapse = " + ")) - result = as.data.frame(stats::model.matrix(formula(string), data = dt)) - max_df = as.numeric(max(regmatches(colnames(result), regexpr("([0-9]+$|$)", colnames(result))))) - if (is.na(max_df)) { - max_df = 1 + if (pv$type == "polynomial") { + for (i in seq_len(ncol(dt))) { + args = list( + x = dt[[i]], + intercept = pv$intercept, + warn.outside = FALSE) + if (!is.null(pv$df)) args$df = pv$df + if (!is.null(pv$knots)) args$knots = pv$knots + if (!is.null(pv$degree)) args$degree = pv$degree + if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[i]] else args$Boundary.knots = range(dt[[i]]) + result[[i]] <- as.data.frame(do.call(splines::bs, args)) + colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) + bk[[i]] = attributes(splines::bs(dt[[i]]))$Boundary.knots } - k = 1 - for (j in colnames(dt)) { - for (i in seq_len(max_df)) { - colnames(result)[k + 1] = paste0(pv$type, "splines.", j, ".", i) - k = k + 1 + self$param_set$values$Boundary.knots = bk + } else { + for (i in seq_len(ncol(dt))) { + args = list( + x = dt[[i]], + intercept = pv$intercept + ) + if (!is.null(pv$df)) args$df = pv$df + if (!is.null(pv$knots)) args$knots = pv$knots + if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[i]] else args$Boundary.knots = range(dt[[i]]) + result[[i]] = as.data.frame(do.call(splines::ns, args)) + + colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) + bk[[i]] = attributes(splines::bs(dt[[i]]))$Boundary.knots + } + self$param_set$values$Boundary.knots = bk } - } result } ) ) mlr_pipeops$add("splines", PipeOpSplines) + +po = po("splines") +head(po$train(list(tsk("iris")))[[1]]$data()) +head(po$predict(list(tsk("iris")))[[1]]$data()) + + +head(po$predict(list(as_task_classif(head(iris), target = "Species")))[[1]]$data()) + + + +po = po("splines", type = "polynomial") +po$train(list(tsk("iris"))) + + +po = po("splines", affect_columns = selector_grep(("Sepal.Length|Petal.Length"))) + +po$train(list(tsk("iris")))[[1]]$data() +po$predict(list(tsk("iris")))[[1]]$data() + + +# bk = attributes(splines::bs(iris$Sepal.Length))$Boundary.knots +# splines::bs(head(iris)$Sepal.Length, Boundary.knots = bk) +# head(splines::bs(iris$Sepal.Length, Boundary.knots = bk)) + +# a = lapply(X = seq_len(ncol(iris)), FUN = function(x) {browser(); splines::bs(iris[[x]])}) diff --git a/tests/testthat/test_pipeop_splines.R b/tests/testthat/test_pipeop_splines.R index 483db7796..848bca4e3 100644 --- a/tests/testthat/test_pipeop_splines.R +++ b/tests/testthat/test_pipeop_splines.R @@ -3,7 +3,8 @@ context("PipeOpSplines") test_that("PipeOpSplines - basic properties", { skip_if_not_installed("splines") task = mlr_tasks$get("iris") - expect_datapreproc_pipeop_class(PipeOpSplines, task = task, deterministic_predict = FALSE) + browser() + expect_datapreproc_pipeop_class(PipeOpSplines, task = task) }) test_that("Error when trying to pass degree argument while factor = natural", { From 2426c6d785e96e77edaeda7026634be62035edce Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Sat, 27 Sep 2025 09:15:13 +0200 Subject: [PATCH 20/35] changes before changing to PipeOpTaskPreproc --- R/PipeOpSplines.R | 78 +++++++++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 36 deletions(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index 587b5bdd6..406c325b0 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -62,15 +62,15 @@ PipeOpSplines = R6Class("PipeOpSplines", inherit = PipeOpTaskPreprocSimple, public = list( initialize = function(id = "splines", param_vals = list()) { - ps = ps( - type = p_fct(levels = c("polynomial", "natural"), init = "natural", tags = c("train", "required")), - df = p_int(lower = 1, upper = Inf, special_vals = list(NULL), init = NULL, tags = "train"), - knots = p_uty(special_vals = list(NULL), init = NULL, tags = "train"), - degree = p_int(lower = 1, upper = Inf, default = 3, depends = type == "polynomial", tags = "train"), - intercept = p_lgl(init = FALSE, tags = "train"), - Boundary.knots = p_uty(init = NULL, tags = "train") - ) - super$initialize(id = id, param_set = ps, param_vals = param_vals, packages = c("splines", "stats")) + ps = ps( + type = p_fct(levels = c("polynomial", "natural"), init = "natural", tags = c("train", "required")), + df = p_int(lower = 1, upper = Inf, special_vals = list(NULL), init = NULL, tags = "train"), + knots = p_uty(special_vals = list(NULL), init = NULL, tags = "train"), + degree = p_int(lower = 1, upper = Inf, default = 3, depends = type == "polynomial", tags = "train"), + intercept = p_lgl(init = FALSE, tags = "train"), + Boundary.knots = p_uty(init = NULL, tags = "train") + ) + super$initialize(id = id, param_set = ps, param_vals = param_vals, packages = c("splines", "stats")) } ), private = list( @@ -80,41 +80,42 @@ PipeOpSplines = R6Class("PipeOpSplines", bk = list() pv = self$param_set$get_values(tags = "train") if (pv$type == "polynomial") { - for (i in seq_len(ncol(dt))) { - args = list( - x = dt[[i]], - intercept = pv$intercept, - warn.outside = FALSE) - if (!is.null(pv$df)) args$df = pv$df - if (!is.null(pv$knots)) args$knots = pv$knots - if (!is.null(pv$degree)) args$degree = pv$degree - if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[i]] else args$Boundary.knots = range(dt[[i]]) - result[[i]] <- as.data.frame(do.call(splines::bs, args)) - colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) - bk[[i]] = attributes(splines::bs(dt[[i]]))$Boundary.knots - } + for (i in seq_len(ncol(dt))) { + args = list( + x = dt[[i]], + intercept = pv$intercept, + warn.outside = FALSE) + if (!is.null(pv$df)) args$df = pv$df + if (!is.null(pv$knots)) args$knots = pv$knots + if (!is.null(pv$degree)) args$degree = pv$degree + if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[i]] else args$Boundary.knots = range(dt[[i]]) + result[[i]] <- as.data.frame(do.call(splines::bs, args)) + colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) + bk[[i]] = attributes(splines::bs(dt[[i]]))$Boundary.knots + } self$param_set$values$Boundary.knots = bk } else { - for (i in seq_len(ncol(dt))) { - args = list( - x = dt[[i]], - intercept = pv$intercept - ) - if (!is.null(pv$df)) args$df = pv$df - if (!is.null(pv$knots)) args$knots = pv$knots - if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[i]] else args$Boundary.knots = range(dt[[i]]) - result[[i]] = as.data.frame(do.call(splines::ns, args)) - - colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) - bk[[i]] = attributes(splines::bs(dt[[i]]))$Boundary.knots + for (i in seq_len(ncol(dt))) { + args = list( + x = dt[[i]], + intercept = pv$intercept + ) + if (!is.null(pv$df)) args$df = pv$df + if (!is.null(pv$knots)) args$knots = pv$knots + if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[colnames(dt)[[i]]]] else args$Boundary.knots = range(dt[[i]]) + result[[i]] = as.data.frame(do.call(splines::ns, args)) + + colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) + bk[[colnames(dt)[[i]]]] = attributes(splines::bs(dt[[i]]))$Boundary.knots # should not update during predict } self$param_set$values$Boundary.knots = bk - } + } result } ) ) + mlr_pipeops$add("splines", PipeOpSplines) po = po("splines") @@ -130,9 +131,14 @@ po = po("splines", type = "polynomial") po$train(list(tsk("iris"))) -po = po("splines", affect_columns = selector_grep(("Sepal.Length|Petal.Length"))) +po = po("splines") +po$train(list(tsk("iris")))[[1]]$data() +po$param_set$values$Boundary.knots +po$param_set$values$affect_columns = selector_grep("Petal.Length|Petal.Width") po$train(list(tsk("iris")))[[1]]$data() + + po$predict(list(tsk("iris")))[[1]]$data() From fce5deef9fe6c1b8eeb78451659866247e3f7d63 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Sat, 27 Sep 2025 11:06:25 +0200 Subject: [PATCH 21/35] changed to PipeOpTaskPreproc --- R/PipeOpSplines.R | 69 ++++++++++++++-------------- tests/testthat/test_pipeop_splines.R | 67 +++++++++------------------ 2 files changed, 56 insertions(+), 80 deletions(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index 406c325b0..e3a58d592 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -59,7 +59,7 @@ #' @export PipeOpSplines = R6Class("PipeOpSplines", - inherit = PipeOpTaskPreprocSimple, + inherit = PipeOpTaskPreproc, public = list( initialize = function(id = "splines", param_vals = list()) { ps = ps( @@ -74,8 +74,7 @@ PipeOpSplines = R6Class("PipeOpSplines", } ), private = list( - .transform_dt = function(dt, levels) { - browser() + .train_dt = function(dt, levels, target) { result = list() bk = list() pv = self$param_set$get_values(tags = "train") @@ -91,7 +90,7 @@ PipeOpSplines = R6Class("PipeOpSplines", if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[i]] else args$Boundary.knots = range(dt[[i]]) result[[i]] <- as.data.frame(do.call(splines::bs, args)) colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) - bk[[i]] = attributes(splines::bs(dt[[i]]))$Boundary.knots + bk[[colnames(dt)[[i]]]] = attributes(splines::bs(dt[[i]]))$Boundary.knots } self$param_set$values$Boundary.knots = bk } else { @@ -111,39 +110,39 @@ PipeOpSplines = R6Class("PipeOpSplines", self$param_set$values$Boundary.knots = bk } result + }, + .predict_dt = function(dt, levels) { + result = list() + pv = self$param_set$get_values(tags = "train") + if (pv$type == "polynomial") { + for (i in seq_len(ncol(dt))) { + args = list( + x = dt[[i]], + intercept = pv$intercept, + warn.outside = FALSE) + if (!is.null(pv$df)) args$df = pv$df + if (!is.null(pv$knots)) args$knots = pv$knots + if (!is.null(pv$degree)) args$degree = pv$degree + if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[colnames(dt)[[i]]]] else args$Boundary.knots = range(dt[[colnames(dt)[[i]]]]) + result[[i]] = as.data.frame(do.call(splines::bs, args)) + colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) + } + } else { + for (i in seq_len(ncol(dt))) { + args = list( + x = dt[[i]], + intercept = pv$intercept + ) + if (!is.null(pv$df)) args$df = pv$df + if (!is.null(pv$knots)) args$knots = pv$knots + if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[colnames(dt)[[i]]]] else args$Boundary.knots = range(dt[[colnames(dt)[[i]]]]) + result[[i]] = as.data.frame(do.call(splines::ns, args)) + colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) + } + } + result } ) ) - mlr_pipeops$add("splines", PipeOpSplines) - -po = po("splines") -head(po$train(list(tsk("iris")))[[1]]$data()) -head(po$predict(list(tsk("iris")))[[1]]$data()) - - -head(po$predict(list(as_task_classif(head(iris), target = "Species")))[[1]]$data()) - - - -po = po("splines", type = "polynomial") -po$train(list(tsk("iris"))) - - -po = po("splines") -po$train(list(tsk("iris")))[[1]]$data() -po$param_set$values$Boundary.knots - -po$param_set$values$affect_columns = selector_grep("Petal.Length|Petal.Width") -po$train(list(tsk("iris")))[[1]]$data() - - -po$predict(list(tsk("iris")))[[1]]$data() - - -# bk = attributes(splines::bs(iris$Sepal.Length))$Boundary.knots -# splines::bs(head(iris)$Sepal.Length, Boundary.knots = bk) -# head(splines::bs(iris$Sepal.Length, Boundary.knots = bk)) - -# a = lapply(X = seq_len(ncol(iris)), FUN = function(x) {browser(); splines::bs(iris[[x]])}) diff --git a/tests/testthat/test_pipeop_splines.R b/tests/testthat/test_pipeop_splines.R index 848bca4e3..d773b255a 100644 --- a/tests/testthat/test_pipeop_splines.R +++ b/tests/testthat/test_pipeop_splines.R @@ -3,7 +3,6 @@ context("PipeOpSplines") test_that("PipeOpSplines - basic properties", { skip_if_not_installed("splines") task = mlr_tasks$get("iris") - browser() expect_datapreproc_pipeop_class(PipeOpSplines, task = task) }) @@ -14,57 +13,35 @@ test_that("Error when trying to pass degree argument while factor = natural", { test_that("results are identical as when calculating by hand", { skip_if_not_installed("splines") + type = list("natural", "polynomial") + intercept = list(TRUE, FALSE) degree = list(1, 2, 3, 4, 5) df = list(1, 2, 3, 4, 5) task = tsk("iris") for (j in degree) { - po = po("splines", type = "polynomial", df = j, degree = j) + for (k in intercept) { + po = po("splines", type = "polynomial", df = j + 1, degree = j, intercept = k) result = po$train(list(task))[[1]]$data()[, -1] - result_calc = as.data.table(stats::model.matrix( - Species ~ splines::bs(Petal.Length, df = j, degree = j) + - splines::bs(Petal.Width, df = j, degree = j) + - splines::bs(Sepal.Length, df = j, degree = j) + - splines::bs(Sepal.Width, df = j, degree = j), - data = iris - )) - data.table::setnames(result, rep("", ncol(result))) - data.table::setnames(result_calc, rep("", ncol(result_calc))) - expect_equal(result, result_calc) - } - for (j in df) { - po = po("splines", df = j) - result = po$train(list(task))[[1]]$data()[, -1] - result_calc = as.data.table(stats::model.matrix( - Species ~ splines::ns(Petal.Length, df = j) + - splines::ns(Petal.Width, df = j) + - splines::ns(Sepal.Length, df = j) + - splines::ns(Sepal.Width, df = j), - data = iris - )) - data.table::setnames(result, rep("", ncol(result))) - data.table::setnames(result_calc, rep("", ncol(result_calc))) - expect_equal(result, result_calc) + result_calc = as.data.table( + cbind( + splines::bs(iris$Petal.Length, df = j + 1, degree = j, intercept = k), + splines::bs(iris$Petal.Width, df = j + 1, degree = j, intercept = k), + splines::bs(iris$Sepal.Length, df = j + 1, degree = j, intercept = k), + splines::bs(iris$Sepal.Width, df = j + 1, degree = j, intercept = k))) + expect_equal(unname(as.matrix(result)), unname(as.matrix(result_calc))) + } } -}) - - -test_that("Selector", { - skip_if_not_installed("splines") - selector = list("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width") - task = tsk("iris") - factor = list("polynomial", "natural") - for (i in seq_along(factor)) { - for (j in seq_along(selector)) { - po = po("splines", type = factor[[i]], affect_columns = selector_grep(selector[[j]])) + for (j in degree) { + for (k in intercept) { + po = po("splines", type = "natural", df = j + 1, intercept = k) result = po$train(list(task))[[1]]$data()[, -1] - result_calc = as.data.table(stats::model.matrix( - as.formula(paste0(if (factor[[i]] == "polynomial") {"Species ~ splines::bs("} else {"Species ~ splines::ns("}, selector[[j]], ")")), - data = iris - )) - relevant_result = as.data.table(intersect(result_calc, result)) - data.table::setnames(result_calc, rep("", ncol(result_calc))) - data.table::setnames(relevant_result, rep("", ncol(relevant_result))) - expect_equal(result_calc, relevant_result) + result_calc = as.data.table( + cbind( + splines::ns(iris$Petal.Length, df = j + 1, intercept = k), + splines::ns(iris$Petal.Width, df = j + 1, intercept = k), + splines::ns(iris$Sepal.Length, df = j + 1, intercept = k), + splines::ns(iris$Sepal.Width, df = j + 1, intercept = k))) + expect_equal(unname(as.matrix(result)), unname(as.matrix(result_calc))) } } }) From 9927ea472ca09d5f5986ad980d7c9eb65d14bd2c Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Sat, 27 Sep 2025 19:10:26 +0200 Subject: [PATCH 22/35] updated tests based on restructured PipeOp --- tests/testthat/test_pipeop_splines.R | 35 ++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tests/testthat/test_pipeop_splines.R b/tests/testthat/test_pipeop_splines.R index d773b255a..5cc996cd9 100644 --- a/tests/testthat/test_pipeop_splines.R +++ b/tests/testthat/test_pipeop_splines.R @@ -45,3 +45,38 @@ test_that("results are identical as when calculating by hand", { } } }) + +test_that("Selector", { + skip_if_not_installed("splines") + type = list("natural", "polynomial") + intercept = list(TRUE, FALSE) + selector = list("Petal.Length", "Sepal.Length", "Petal.Width", "Sepal.Width") + degree = list(1, 2, 3, 4, 5) + df = list(1, 2, 3, 4, 5) + task = tsk("iris") + for (i in selector) { + for (j in degree) { + for (k in intercept) { + po = po("splines", type = "polynomial", df = j + 1, degree = j, intercept = k, affect_columns = selector_grep(i)) + result = po$train(list(task))[[1]]$data()[, -1] + result_calc = as.data.table( + cbind( + splines::bs(iris[[i]], df = j + 1, degree = j, intercept = k))) + expect_subset(unname(as.matrix(result_calc)), unname(as.matrix(result))) + } + } + } + for (i in selector) { + for (j in degree) { + for (k in intercept) { + po = po("splines", type = "natural", df = j + 1, intercept = k, affect_columns = selector_grep(i)) + result = po$train(list(task))[[1]]$data()[, -1] + result_calc = as.data.table( + cbind( + splines::ns(iris[[i]], df = j + 1, intercept = k))) + expect_subset(unname(as.matrix(result_calc)), unname(as.matrix(result))) + } + } + } +}) + From ee010bdd912dd45aa189167dcda2ffe6c14932c5 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Tue, 7 Oct 2025 09:58:49 +0200 Subject: [PATCH 23/35] post meeting with Martin; with notes; without changes in code --- R/PipeOpSplines.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index e3a58d592..690f931d9 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -84,11 +84,11 @@ PipeOpSplines = R6Class("PipeOpSplines", x = dt[[i]], intercept = pv$intercept, warn.outside = FALSE) - if (!is.null(pv$df)) args$df = pv$df + args$df = pv$df # is.nll negation löschen if (!is.null(pv$knots)) args$knots = pv$knots if (!is.null(pv$degree)) args$degree = pv$degree if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[i]] else args$Boundary.knots = range(dt[[i]]) - result[[i]] <- as.data.frame(do.call(splines::bs, args)) + result[[i]] = as.data.frame(do.call(splines::bs, args)) colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) bk[[colnames(dt)[[i]]]] = attributes(splines::bs(dt[[i]]))$Boundary.knots } @@ -113,7 +113,7 @@ PipeOpSplines = R6Class("PipeOpSplines", }, .predict_dt = function(dt, levels) { result = list() - pv = self$param_set$get_values(tags = "train") + pv = self$param_set$get_values # tag entfernen oben if (pv$type == "polynomial") { for (i in seq_len(ncol(dt))) { args = list( @@ -124,7 +124,7 @@ PipeOpSplines = R6Class("PipeOpSplines", if (!is.null(pv$knots)) args$knots = pv$knots if (!is.null(pv$degree)) args$degree = pv$degree if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[colnames(dt)[[i]]]] else args$Boundary.knots = range(dt[[colnames(dt)[[i]]]]) - result[[i]] = as.data.frame(do.call(splines::bs, args)) + result[[i]] = as.data.frame(do.call(splines::bs, args)) #mlr3misc; invoke lieber benutzen; args pv = NULL; colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) } } else { From 812e00818ed8726e19b584f259d9a7a67a1aec44 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Wed, 8 Oct 2025 08:32:46 +0200 Subject: [PATCH 24/35] updated PipeOpSplines --- R/PipeOpSplines.R | 91 +++++++++++++++-------------------------------- 1 file changed, 29 insertions(+), 62 deletions(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index 690f931d9..60b6d8de5 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -63,12 +63,12 @@ PipeOpSplines = R6Class("PipeOpSplines", public = list( initialize = function(id = "splines", param_vals = list()) { ps = ps( - type = p_fct(levels = c("polynomial", "natural"), init = "natural", tags = c("train", "required")), - df = p_int(lower = 1, upper = Inf, special_vals = list(NULL), init = NULL, tags = "train"), - knots = p_uty(special_vals = list(NULL), init = NULL, tags = "train"), - degree = p_int(lower = 1, upper = Inf, default = 3, depends = type == "polynomial", tags = "train"), - intercept = p_lgl(init = FALSE, tags = "train"), - Boundary.knots = p_uty(init = NULL, tags = "train") + type = p_fct(levels = c("polynomial", "natural"), init = "natural", tags = c("train", "splines")), + df = p_int(lower = 1, upper = Inf, special_vals = list(NULL), init = NULL, tags = c("train", "splines")), + knots = p_uty(special_vals = list(NULL), init = NULL, tags = c("train", "splines")), + degree = p_int(lower = 1, upper = Inf, default = 3, depends = type == "polynomial", tags = c("train", "splines")), + intercept = p_lgl(init = FALSE, tags = c("train", "splines")), + Boundary.knots = p_uty(tags = c("train", "splines")) ) super$initialize(id = id, param_set = ps, param_vals = param_vals, packages = c("splines", "stats")) } @@ -77,68 +77,35 @@ PipeOpSplines = R6Class("PipeOpSplines", .train_dt = function(dt, levels, target) { result = list() bk = list() - pv = self$param_set$get_values(tags = "train") - if (pv$type == "polynomial") { - for (i in seq_len(ncol(dt))) { - args = list( - x = dt[[i]], - intercept = pv$intercept, - warn.outside = FALSE) - args$df = pv$df # is.nll negation löschen - if (!is.null(pv$knots)) args$knots = pv$knots - if (!is.null(pv$degree)) args$degree = pv$degree - if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[i]] else args$Boundary.knots = range(dt[[i]]) - result[[i]] = as.data.frame(do.call(splines::bs, args)) - colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) - bk[[colnames(dt)[[i]]]] = attributes(splines::bs(dt[[i]]))$Boundary.knots + pv = self$param_set$get_values(tags = "splines") + for (i in colnames(dt)) { + args = pv + args$type = NULL + args$Boundary.knots = self$state$Boundary.knots[[i]] + if (pv$type == "polynomial") { + result[[i]] = invoke(splines::bs, .args = args, x = dt[[i]], warn.outside = FALSE) + } else { + result[[i]] = invoke(splines::ns, .args = args, x = dt[[i]]) + } + colnames(result[[i]]) = paste0("splines.", i, ".", seq_len(ncol(result[[i]]))) + bk[[i]] = attributes(splines::bs(dt[[i]]))$Boundary.knots } - self$param_set$values$Boundary.knots = bk - } else { - for (i in seq_len(ncol(dt))) { - args = list( - x = dt[[i]], - intercept = pv$intercept - ) - if (!is.null(pv$df)) args$df = pv$df - if (!is.null(pv$knots)) args$knots = pv$knots - if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[colnames(dt)[[i]]]] else args$Boundary.knots = range(dt[[i]]) - result[[i]] = as.data.frame(do.call(splines::ns, args)) - - colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) - bk[[colnames(dt)[[i]]]] = attributes(splines::bs(dt[[i]]))$Boundary.knots # should not update during predict - } - self$param_set$values$Boundary.knots = bk - } + self$state$Boundary.knots = bk result }, .predict_dt = function(dt, levels) { result = list() - pv = self$param_set$get_values # tag entfernen oben - if (pv$type == "polynomial") { - for (i in seq_len(ncol(dt))) { - args = list( - x = dt[[i]], - intercept = pv$intercept, - warn.outside = FALSE) - if (!is.null(pv$df)) args$df = pv$df - if (!is.null(pv$knots)) args$knots = pv$knots - if (!is.null(pv$degree)) args$degree = pv$degree - if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[colnames(dt)[[i]]]] else args$Boundary.knots = range(dt[[colnames(dt)[[i]]]]) - result[[i]] = as.data.frame(do.call(splines::bs, args)) #mlr3misc; invoke lieber benutzen; args pv = NULL; - colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) - } - } else { - for (i in seq_len(ncol(dt))) { - args = list( - x = dt[[i]], - intercept = pv$intercept - ) - if (!is.null(pv$df)) args$df = pv$df - if (!is.null(pv$knots)) args$knots = pv$knots - if (!is.null(pv$Boundary.knots)) args$Boundary.knots = pv$Boundary.knots[[colnames(dt)[[i]]]] else args$Boundary.knots = range(dt[[colnames(dt)[[i]]]]) - result[[i]] = as.data.frame(do.call(splines::ns, args)) - colnames(result[[i]]) = paste0("splines.", colnames(dt)[[i]], ".", seq_len(ncol(result[[i]]))) + pv = self$param_set$get_values(tags = "splines") # tag entfernen oben + for (i in colnames(dt)) { + args = pv + args$type = NULL + args$Boundary.knots = self$state$Boundary.knots[[i]] + if (pv$type == "polynomial") { + result[[i]] = invoke(splines::bs, .args = args, x = dt[[i]], warn.outside = FALSE) + } else { + result[[i]] = invoke(splines::ns, .args = args, x = dt[[i]]) } + colnames(result[[i]]) = paste0("splines.", i, ".", seq_len(ncol(result[[i]]))) } result } From 874d68dfe6070084973d58cbaa8e0c19b7d9f207 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Thu, 16 Oct 2025 18:33:30 +0200 Subject: [PATCH 25/35] small updates for PipeOpSplines + associated tests --- R/PipeOpSplines.R | 13 +++++++++---- tests/testthat/test_pipeop_splines.R | 3 ++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index 60b6d8de5..f3c47a216 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -68,7 +68,7 @@ PipeOpSplines = R6Class("PipeOpSplines", knots = p_uty(special_vals = list(NULL), init = NULL, tags = c("train", "splines")), degree = p_int(lower = 1, upper = Inf, default = 3, depends = type == "polynomial", tags = c("train", "splines")), intercept = p_lgl(init = FALSE, tags = c("train", "splines")), - Boundary.knots = p_uty(tags = c("train", "splines")) + Boundary.knots = p_uty(tags = c("train")) ) super$initialize(id = id, param_set = ps, param_vals = param_vals, packages = c("splines", "stats")) } @@ -81,10 +81,10 @@ PipeOpSplines = R6Class("PipeOpSplines", for (i in colnames(dt)) { args = pv args$type = NULL - args$Boundary.knots = self$state$Boundary.knots[[i]] + args$Boundary.knots = po$param_set$values$Boundary.knots[[i]] if (pv$type == "polynomial") { result[[i]] = invoke(splines::bs, .args = args, x = dt[[i]], warn.outside = FALSE) - } else { + } else { result[[i]] = invoke(splines::ns, .args = args, x = dt[[i]]) } colnames(result[[i]]) = paste0("splines.", i, ".", seq_len(ncol(result[[i]]))) @@ -102,7 +102,7 @@ PipeOpSplines = R6Class("PipeOpSplines", args$Boundary.knots = self$state$Boundary.knots[[i]] if (pv$type == "polynomial") { result[[i]] = invoke(splines::bs, .args = args, x = dt[[i]], warn.outside = FALSE) - } else { + } else { result[[i]] = invoke(splines::ns, .args = args, x = dt[[i]]) } colnames(result[[i]]) = paste0("splines.", i, ".", seq_len(ncol(result[[i]]))) @@ -113,3 +113,8 @@ PipeOpSplines = R6Class("PipeOpSplines", ) mlr_pipeops$add("splines", PipeOpSplines) + +#' po = po("splines", param_vals = list(Boundary.knots = list(Petal.Length = c(1, 5), Sepal.Length = c(2, 4), Sepal.Width = c(3, 6), Petal.Width = c(4, 5)))) +#' po$param_set$get_values(tags = "train") +#' po$train(list(tsk("iris"))) +#' po$predict(list(tsk("iris")))[[1]]$data() diff --git a/tests/testthat/test_pipeop_splines.R b/tests/testthat/test_pipeop_splines.R index 5cc996cd9..d97001abf 100644 --- a/tests/testthat/test_pipeop_splines.R +++ b/tests/testthat/test_pipeop_splines.R @@ -3,7 +3,8 @@ context("PipeOpSplines") test_that("PipeOpSplines - basic properties", { skip_if_not_installed("splines") task = mlr_tasks$get("iris") - expect_datapreproc_pipeop_class(PipeOpSplines, task = task) + expect_datapreproc_pipeop_class(PipeOpSplines, task = task, predict_like_train = FALSE) + # when we train we get the Boundary.knots, when we now predict on the same data the results will change }) test_that("Error when trying to pass degree argument while factor = natural", { From c2818af6e11aa13b81a7334ec4ecca5df8107ea8 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Thu, 16 Oct 2025 18:48:22 +0200 Subject: [PATCH 26/35] small fix --- R/PipeOpSplines.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index f3c47a216..184346fdc 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -81,7 +81,7 @@ PipeOpSplines = R6Class("PipeOpSplines", for (i in colnames(dt)) { args = pv args$type = NULL - args$Boundary.knots = po$param_set$values$Boundary.knots[[i]] + args$Boundary.knots = self$param_set$values$Boundary.knots[[i]] if (pv$type == "polynomial") { result[[i]] = invoke(splines::bs, .args = args, x = dt[[i]], warn.outside = FALSE) } else { From 8efca8d6dd803f3b5b7676baa83bb56c15bea953 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Mon, 27 Oct 2025 08:57:21 +0100 Subject: [PATCH 27/35] changes in tags --- R/PipeOpSplines.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index 184346fdc..01139f3a0 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -68,7 +68,7 @@ PipeOpSplines = R6Class("PipeOpSplines", knots = p_uty(special_vals = list(NULL), init = NULL, tags = c("train", "splines")), degree = p_int(lower = 1, upper = Inf, default = 3, depends = type == "polynomial", tags = c("train", "splines")), intercept = p_lgl(init = FALSE, tags = c("train", "splines")), - Boundary.knots = p_uty(tags = c("train")) + Boundary.knots = p_uty(tags = "predict") # predict probably wrong ) super$initialize(id = id, param_set = ps, param_vals = param_vals, packages = c("splines", "stats")) } @@ -95,7 +95,7 @@ PipeOpSplines = R6Class("PipeOpSplines", }, .predict_dt = function(dt, levels) { result = list() - pv = self$param_set$get_values(tags = "splines") # tag entfernen oben + pv = self$param_set$get_values(tags = "splines") for (i in colnames(dt)) { args = pv args$type = NULL @@ -115,6 +115,6 @@ PipeOpSplines = R6Class("PipeOpSplines", mlr_pipeops$add("splines", PipeOpSplines) #' po = po("splines", param_vals = list(Boundary.knots = list(Petal.Length = c(1, 5), Sepal.Length = c(2, 4), Sepal.Width = c(3, 6), Petal.Width = c(4, 5)))) -#' po$param_set$get_values(tags = "train") +#' po$param_set$get_values(tags = "splines") #' po$train(list(tsk("iris"))) #' po$predict(list(tsk("iris")))[[1]]$data() From ef8be48822b647071d007b604bb2fb6847302e47 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Wed, 29 Oct 2025 22:59:23 +0100 Subject: [PATCH 28/35] updated doc and added Boundary.knots test --- R/PipeOpSplines.R | 41 +++++++++++++++++---------- man/mlr_pipeops_splines.Rd | 28 +++++++++++++++---- tests/testthat/test_pipeop_splines.R | 42 ++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+), 20 deletions(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index 01139f3a0..b8448b950 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -1,11 +1,14 @@ -#' @title Transforms Columns using Splines Methods by Constructing a Model Matrix +#' @title Transforms Numeric Features into Spline Basis Expansions #' #' @usage NULL #' @name mlr_pipeops_splines #' @format [`R6Class`][R6::R6Class] object inheriting from [`PipeOpTaskPreprocSimple`]/[`PipeOpTaskPreproc`]/[`PipeOp`]. #' #' @description -#' Transforms Columns using Splines Methods by Constructing a Model Matrix. +#' Replaces numeric features with columns representing spline basis expansions. +#' +#' Depending on the type parameter, constructs polynomial B-splines [`splines::bs()`] or natural cubic splines [`splines::ns()`] for the respective column. +#' #' #' @section Construction: #' ``` @@ -29,21 +32,33 @@ #' The parameters are the parameters inherited from [`PipeOpTaskPreproc`], as well as: #' * `factor` :: `character(1)` \cr #' "Polynomial" when polynomial splines are applied [`splines::bs`] or -#' "natural" when natural natural splines are applied [`splines::bs`]. +#' "natural" when natural natural splines are applied [`splines::ns`]. #' Default is "polynomial". #' * `df` :: `integer(1)` \cr #' Number of degrees of freedom for calculation of splines basis matrix. #' Default is NULL. +#' For further information look up [`splines::bs()`] or [`splines::ns()`]. +#' * `knots` :: `numeric(1)` \cr +#' The internal breakpoints that define the spline. The default is no knots. +#' For further information consult [`splines::bs()`] or [`splines::ns()`]. +#' * `intercept` :: `logical(1)` \cr +#' If `TRUE`, an intercept is included in the basis. Default is `FALSE`. +#' For further information look up [`splines::bs()`] or [`splines::ns()`]. +#' * `degree` :: `integer(1)` \cr +#' Degree of the polynomial used to compute B-splines. This parameter can only be used when type = "polynomial". +#' Default is 3. For further information look up [`splines::bs()`]. +#' * `Boundary.knots` :: `list` \cr +#' Boundary points at which to anchor the B-spline basis. Parameter has to be passed as a named list. +#' For further information look up [`splines::bs()`] or [`splines::ns()`]. #' #' @section Internals: #' For creating the Splines uses the [`splines::bs`]/[`splines::ns`] function. -#' Uses the [`stats::model.matrix()`] function. #' #' @section Fields: #' Only fields inherited from [`PipeOp`]. #' #' @section Methods: -#' Only methods inherited from [`PipeOpTaskPreprocSimple`]/[`PipeOpTaskPreproc`]/[`PipeOp`]. +#' Only methods inherited from [`PipeOpTaskPreproc`]/[`PipeOp`]. #' #' @examples #' library("mlr3") @@ -53,6 +68,9 @@ #' #' pop$train(list(task))[[1]]$data() #' +#' pobk = po("splines", param_vals = list(Boundary.knots = list("Petal.Length" = c(0, 4), "Petal.Width" = c(4, 7), "Sepal.Length" = c(1, 5), "Sepal.Width" = c(3, 6)))) +#' pobk$train(list(task))[[1]]$data() +#' #' @family PipeOps #' @template seealso_pipeopslist #' @include PipeOpTaskPreproc.R @@ -63,12 +81,12 @@ PipeOpSplines = R6Class("PipeOpSplines", public = list( initialize = function(id = "splines", param_vals = list()) { ps = ps( - type = p_fct(levels = c("polynomial", "natural"), init = "natural", tags = c("train", "splines")), + type = p_fct(levels = c("polynomial", "natural"), init = "natural", tags = c("train", "splines", "required")), df = p_int(lower = 1, upper = Inf, special_vals = list(NULL), init = NULL, tags = c("train", "splines")), knots = p_uty(special_vals = list(NULL), init = NULL, tags = c("train", "splines")), degree = p_int(lower = 1, upper = Inf, default = 3, depends = type == "polynomial", tags = c("train", "splines")), intercept = p_lgl(init = FALSE, tags = c("train", "splines")), - Boundary.knots = p_uty(tags = "predict") # predict probably wrong + Boundary.knots = p_uty(tags = c("train", "splines")) ) super$initialize(id = id, param_set = ps, param_vals = param_vals, packages = c("splines", "stats")) } @@ -81,14 +99,14 @@ PipeOpSplines = R6Class("PipeOpSplines", for (i in colnames(dt)) { args = pv args$type = NULL - args$Boundary.knots = self$param_set$values$Boundary.knots[[i]] + args$Boundary.knots = pv$Boundary.knots[[i]] if (pv$type == "polynomial") { result[[i]] = invoke(splines::bs, .args = args, x = dt[[i]], warn.outside = FALSE) } else { result[[i]] = invoke(splines::ns, .args = args, x = dt[[i]]) } colnames(result[[i]]) = paste0("splines.", i, ".", seq_len(ncol(result[[i]]))) - bk[[i]] = attributes(splines::bs(dt[[i]]))$Boundary.knots + bk[[i]] = attributes(result[[i]])$Boundary.knots } self$state$Boundary.knots = bk result @@ -113,8 +131,3 @@ PipeOpSplines = R6Class("PipeOpSplines", ) mlr_pipeops$add("splines", PipeOpSplines) - -#' po = po("splines", param_vals = list(Boundary.knots = list(Petal.Length = c(1, 5), Sepal.Length = c(2, 4), Sepal.Width = c(3, 6), Petal.Width = c(4, 5)))) -#' po$param_set$get_values(tags = "splines") -#' po$train(list(tsk("iris"))) -#' po$predict(list(tsk("iris")))[[1]]$data() diff --git a/man/mlr_pipeops_splines.Rd b/man/mlr_pipeops_splines.Rd index ae5ce2071..00bb14c1c 100644 --- a/man/mlr_pipeops_splines.Rd +++ b/man/mlr_pipeops_splines.Rd @@ -3,17 +3,19 @@ \name{mlr_pipeops_splines} \alias{mlr_pipeops_splines} \alias{PipeOpSplines} -\title{Transforms Columns using Splines Methods by Constructing a Model Matrix} +\title{Transforms Numeric Features into Spline Basis Expansions} \format{ \code{\link[R6:R6Class]{R6Class}} object inheriting from \code{\link{PipeOpTaskPreprocSimple}}/\code{\link{PipeOpTaskPreproc}}/\code{\link{PipeOp}}. } \description{ -Transforms Columns using Splines Methods by Constructing a Model Matrix. +Replaces numeric features with columns representing spline basis expansions. + +Depending on the type parameter, constructs polynomial B-splines \code{\link[splines:bs]{splines::bs()}} or natural cubic splines \code{\link[splines:ns]{splines::ns()}} for the respective column. } \section{Construction}{ -\if{html}{\out{
}}\preformatted{po("basissplines", param_vals = list()) +\if{html}{\out{
}}\preformatted{po("splines", param_vals = list()) }\if{html}{\out{
}} \itemize{ \item \code{id} :: \code{character(1)}\cr @@ -41,18 +43,30 @@ The parameters are the parameters inherited from \code{\link{PipeOpTaskPreproc}} \itemize{ \item \code{factor} :: \code{character(1)} \cr "Polynomial" when polynomial splines are applied \code{\link[splines:bs]{splines::bs}} or -"natural" when natural natural splines are applied \code{\link[splines:bs]{splines::bs}}. +"natural" when natural natural splines are applied \code{\link[splines:ns]{splines::ns}}. Default is "polynomial". \item \code{df} :: \code{integer(1)} \cr Number of degrees of freedom for calculation of splines basis matrix. Default is NULL. +For further information consult \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. +\item \code{knots} :: \code{numeric(1)} \cr +The internal breakpoints that define the spline. The default is no knots. +For further information consult \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. +\item \code{intercept} :: \code{logical(1)} \cr +If \code{TRUE}, an intercept is included in the basis. Default is \code{FALSE}. +For further information consult \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. +\item \code{degree} :: \code{integer(1)} \cr +Degree of the polynomial used to compute B-splines. This parameter can only be used when type = "polynomial". +Default is 3. For further information consult \code{\link[splines:bs]{splines::bs()}}. +\item \code{Boundary.knots} :: \code{list} \cr +Boundary points at which to anchor the B-spline basis. Parameter has to be passed as a named list. +For further information consult \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. } } \section{Internals}{ For creating the Splines uses the \code{\link[splines:bs]{splines::bs}}/\code{\link[splines:ns]{splines::ns}} function. -Uses the \code{\link[stats:model.matrix]{stats::model.matrix()}} function. } \section{Fields}{ @@ -73,7 +87,9 @@ pop = po("splines") pop$train(list(task))[[1]]$data() -pop$state +pobk = po("splines", param_vals = list(Boundary.knots = list("Petal.Length" = c(0, 4), "Petal.Width" = c(4, 7), "Sepal.Length" = c(1, 5), "Sepal.Width" = c(3, 6)))) +pobk$train(list(task))[[1]]$data() + } \seealso{ https://mlr-org.com/pipeops.html diff --git a/tests/testthat/test_pipeop_splines.R b/tests/testthat/test_pipeop_splines.R index d97001abf..d74245c10 100644 --- a/tests/testthat/test_pipeop_splines.R +++ b/tests/testthat/test_pipeop_splines.R @@ -81,3 +81,45 @@ test_that("Selector", { } }) + +test_that("Boundary Knots", { + skip_if_not_installed("splines") + type = list("natural", "polynomial") + intercept = list(TRUE, FALSE) + degree = list(1, 2, 3, 4, 5) + df = list(1, 2, 3, 4, 5) + Boundary.knots = list() + for (col in names(iris)) { + if (is.numeric(iris[[col]])) { + Boundary.knots[[col]] <- quantile(iris[[col]], probs = c(0.25, 0.75), na.rm = TRUE) + } + } + task = tsk("iris") + for (j in degree) { + for (k in intercept) { + po = po("splines", type = "polynomial", df = j + 1, degree = j, intercept = k, Boundary.knots = Boundary.knots) + result = po$train(list(task))[[1]]$data()[, -1] + result_calc = as.data.table( + cbind( + suppressWarnings(splines::bs(iris$Petal.Length, df = j + 1, degree = j, intercept = k, Boundary.knots = Boundary.knots[["Petal.Length"]])), + suppressWarnings(splines::bs(iris$Petal.Width, df = j + 1, degree = j, intercept = k, Boundary.knots = Boundary.knots[["Petal.Width"]])), + suppressWarnings(splines::bs(iris$Sepal.Length, df = j + 1, degree = j, intercept = k, Boundary.knots = Boundary.knots[["Sepal.Length"]])), + suppressWarnings(splines::bs(iris$Sepal.Width, df = j + 1, degree = j, intercept = k, Boundary.knots = Boundary.knots[["Sepal.Width"]])))) + expect_equal(unname(as.matrix(result_calc)), unname(as.matrix(result))) + } + } + for (j in degree) { + for (k in intercept) { + po = po("splines", type = "natural", df = j + 1, intercept = k, Boundary.knots = Boundary.knots) + result = po$train(list(task))[[1]]$data()[, -1] + result_calc = as.data.table( + cbind( + splines::ns(iris$Petal.Length, df = j + 1, intercept = k, Boundary.knots = Boundary.knots[["Petal.Length"]]), + splines::ns(iris$Petal.Width, df = j + 1, intercept = k, Boundary.knots = Boundary.knots[["Petal.Width"]]), + splines::ns(iris$Sepal.Length, df = j + 1, intercept = k, Boundary.knots = Boundary.knots[["Sepal.Length"]]), + splines::ns(iris$Sepal.Width, df = j + 1, intercept = k, Boundary.knots = Boundary.knots[["Sepal.Width"]]))) + expect_equal(unname(as.matrix(result_calc)), unname(as.matrix(result))) + } + } +}) + From 3e4400666b18575959b1f74c4ddb522e0767bae5 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Thu, 30 Oct 2025 11:00:53 +0100 Subject: [PATCH 29/35] added test for knots --- R/PipeOpSplines.R | 6 +++-- tests/testthat/test_pipeop_splines.R | 37 +++++++++++++++++++--------- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index b8448b950..89c6f9534 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -99,13 +99,14 @@ PipeOpSplines = R6Class("PipeOpSplines", for (i in colnames(dt)) { args = pv args$type = NULL + args$knots = pv$knots[[i]] args$Boundary.knots = pv$Boundary.knots[[i]] if (pv$type == "polynomial") { result[[i]] = invoke(splines::bs, .args = args, x = dt[[i]], warn.outside = FALSE) } else { result[[i]] = invoke(splines::ns, .args = args, x = dt[[i]]) } - colnames(result[[i]]) = paste0("splines.", i, ".", seq_len(ncol(result[[i]]))) + colnames(result[[i]]) = paste0("splines.", seq_len(ncol(result[[i]]))) bk[[i]] = attributes(result[[i]])$Boundary.knots } self$state$Boundary.knots = bk @@ -117,13 +118,14 @@ PipeOpSplines = R6Class("PipeOpSplines", for (i in colnames(dt)) { args = pv args$type = NULL + args$knots = pv$knots[[i]] args$Boundary.knots = self$state$Boundary.knots[[i]] if (pv$type == "polynomial") { result[[i]] = invoke(splines::bs, .args = args, x = dt[[i]], warn.outside = FALSE) } else { result[[i]] = invoke(splines::ns, .args = args, x = dt[[i]]) } - colnames(result[[i]]) = paste0("splines.", i, ".", seq_len(ncol(result[[i]]))) + colnames(result[[i]]) = paste0("splines.", seq_len(ncol(result[[i]]))) } result } diff --git a/tests/testthat/test_pipeop_splines.R b/tests/testthat/test_pipeop_splines.R index d74245c10..db300fd60 100644 --- a/tests/testthat/test_pipeop_splines.R +++ b/tests/testthat/test_pipeop_splines.R @@ -82,42 +82,55 @@ test_that("Selector", { }) -test_that("Boundary Knots", { +test_that("Boundary Knots and Knots", { skip_if_not_installed("splines") type = list("natural", "polynomial") intercept = list(TRUE, FALSE) degree = list(1, 2, 3, 4, 5) df = list(1, 2, 3, 4, 5) Boundary.knots = list() + for (col in names(iris)) { if (is.numeric(iris[[col]])) { - Boundary.knots[[col]] <- quantile(iris[[col]], probs = c(0.25, 0.75), na.rm = TRUE) + Boundary.knots[[col]] = quantile(iris[[col]], probs = seq(0.1, 0.9, length.out = 2), na.rm = TRUE) } } + knots = list() task = tsk("iris") + for (j in degree) { + for (col in names(iris)) { + if (is.numeric(iris[[col]])) { + knots[[col]] = quantile(iris[[col]], probs = seq(0.2, 0.8, length.out = (j + 1) - length(Boundary.knots[[col]])), na.rm = TRUE) + } + } for (k in intercept) { - po = po("splines", type = "polynomial", df = j + 1, degree = j, intercept = k, Boundary.knots = Boundary.knots) + po = po("splines", type = "polynomial", df = j + 1, degree = j, intercept = k, knots = knots, Boundary.knots = Boundary.knots) result = po$train(list(task))[[1]]$data()[, -1] result_calc = as.data.table( cbind( - suppressWarnings(splines::bs(iris$Petal.Length, df = j + 1, degree = j, intercept = k, Boundary.knots = Boundary.knots[["Petal.Length"]])), - suppressWarnings(splines::bs(iris$Petal.Width, df = j + 1, degree = j, intercept = k, Boundary.knots = Boundary.knots[["Petal.Width"]])), - suppressWarnings(splines::bs(iris$Sepal.Length, df = j + 1, degree = j, intercept = k, Boundary.knots = Boundary.knots[["Sepal.Length"]])), - suppressWarnings(splines::bs(iris$Sepal.Width, df = j + 1, degree = j, intercept = k, Boundary.knots = Boundary.knots[["Sepal.Width"]])))) + suppressWarnings(splines::bs(iris$Petal.Length, df = j + 1, degree = j, intercept = k, knots = knots[["Petal.Length"]], Boundary.knots = Boundary.knots[["Petal.Length"]])), + suppressWarnings(splines::bs(iris$Petal.Width, df = j + 1, degree = j, intercept = k, knots = knots[["Petal.Width"]], Boundary.knots = Boundary.knots[["Petal.Width"]])), + suppressWarnings(splines::bs(iris$Sepal.Length, df = j + 1, degree = j, intercept = k, knots = knots[["Sepal.Length"]], Boundary.knots = Boundary.knots[["Sepal.Length"]])), + suppressWarnings(splines::bs(iris$Sepal.Width, df = j + 1, degree = j, intercept = k, knots = knots[["Sepal.Width"]], Boundary.knots = Boundary.knots[["Sepal.Width"]])))) expect_equal(unname(as.matrix(result_calc)), unname(as.matrix(result))) } } for (j in degree) { + for (col in names(iris)) { + if (is.numeric(iris[[col]])) { + knots[[col]] = quantile(iris[[col]], probs = seq(0.2, 0.8, length.out = (j + 1) - length(Boundary.knots[[col]])), na.rm = TRUE) + } + } for (k in intercept) { - po = po("splines", type = "natural", df = j + 1, intercept = k, Boundary.knots = Boundary.knots) + po = po("splines", type = "natural", df = j + 1, intercept = k, knots = knots, Boundary.knots = Boundary.knots) result = po$train(list(task))[[1]]$data()[, -1] result_calc = as.data.table( cbind( - splines::ns(iris$Petal.Length, df = j + 1, intercept = k, Boundary.knots = Boundary.knots[["Petal.Length"]]), - splines::ns(iris$Petal.Width, df = j + 1, intercept = k, Boundary.knots = Boundary.knots[["Petal.Width"]]), - splines::ns(iris$Sepal.Length, df = j + 1, intercept = k, Boundary.knots = Boundary.knots[["Sepal.Length"]]), - splines::ns(iris$Sepal.Width, df = j + 1, intercept = k, Boundary.knots = Boundary.knots[["Sepal.Width"]]))) + splines::ns(iris$Petal.Length, df = j + 1, intercept = k, knots = knots[["Petal.Length"]], Boundary.knots = Boundary.knots[["Petal.Length"]]), + splines::ns(iris$Petal.Width, df = j + 1, intercept = k, knots = knots[["Petal.Width"]], Boundary.knots = Boundary.knots[["Petal.Width"]]), + splines::ns(iris$Sepal.Length, df = j + 1, intercept = k, knots = knots[["Sepal.Length"]], Boundary.knots = Boundary.knots[["Sepal.Length"]]), + splines::ns(iris$Sepal.Width, df = j + 1, intercept = k, knots = knots[["Sepal.Width"]], Boundary.knots = Boundary.knots[["Sepal.Width"]]))) expect_equal(unname(as.matrix(result_calc)), unname(as.matrix(result))) } } From 622ab65cd22c2ccefd0c786256d9b85096998c93 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Sun, 2 Nov 2025 20:50:25 +0100 Subject: [PATCH 30/35] changes in doc --- R/PipeOpSplines.R | 9 ++++++--- man/mlr_pipeops_splines.Rd | 19 +++++++++++-------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index 89c6f9534..f075f76a8 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -27,6 +27,7 @@ #' #' @section State: #' The `$state` is a named `list` with the `$state` elements inherited from [`PipeOpTaskPreproc`]. +#' After training the `Boundary.knots`will be given to the `$state`. #' #' @section Parameters: #' The parameters are the parameters inherited from [`PipeOpTaskPreproc`], as well as: @@ -38,21 +39,23 @@ #' Number of degrees of freedom for calculation of splines basis matrix. #' Default is NULL. #' For further information look up [`splines::bs()`] or [`splines::ns()`]. -#' * `knots` :: `numeric(1)` \cr +#' * `knots` :: `list` \cr #' The internal breakpoints that define the spline. The default is no knots. #' For further information consult [`splines::bs()`] or [`splines::ns()`]. #' * `intercept` :: `logical(1)` \cr #' If `TRUE`, an intercept is included in the basis. Default is `FALSE`. #' For further information look up [`splines::bs()`] or [`splines::ns()`]. #' * `degree` :: `integer(1)` \cr -#' Degree of the polynomial used to compute B-splines. This parameter can only be used when type = "polynomial". +#' This parameter depends on type = "polynomial". Degree of the polynomial used to compute B-splines. #' Default is 3. For further information look up [`splines::bs()`]. #' * `Boundary.knots` :: `list` \cr -#' Boundary points at which to anchor the B-spline basis. Parameter has to be passed as a named list. +#' Boundary points at which to anchor the spline basis. Parameter has to be passed as a named list. #' For further information look up [`splines::bs()`] or [`splines::ns()`]. #' #' @section Internals: #' For creating the Splines uses the [`splines::bs`]/[`splines::ns`] function. +#' After training, the `Boundary.Knots` that are either defined in the Parameter Set +#' or have been calculated during training will be passed to the `$state` of the PipeOp. #' #' @section Fields: #' Only fields inherited from [`PipeOp`]. diff --git a/man/mlr_pipeops_splines.Rd b/man/mlr_pipeops_splines.Rd index 00bb14c1c..170a117f8 100644 --- a/man/mlr_pipeops_splines.Rd +++ b/man/mlr_pipeops_splines.Rd @@ -35,6 +35,7 @@ The output is the input \code{\link[mlr3:Task]{Task}} with the selected columns \section{State}{ The \verb{$state} is a named \code{list} with the \verb{$state} elements inherited from \code{\link{PipeOpTaskPreproc}}. +After training the \code{Boundary.knots}will be given to the \verb{$state}. } \section{Parameters}{ @@ -48,25 +49,27 @@ Default is "polynomial". \item \code{df} :: \code{integer(1)} \cr Number of degrees of freedom for calculation of splines basis matrix. Default is NULL. -For further information consult \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. -\item \code{knots} :: \code{numeric(1)} \cr +For further information look up \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. +\item \code{knots} :: \code{list} \cr The internal breakpoints that define the spline. The default is no knots. For further information consult \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. \item \code{intercept} :: \code{logical(1)} \cr If \code{TRUE}, an intercept is included in the basis. Default is \code{FALSE}. -For further information consult \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. +For further information look up \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. \item \code{degree} :: \code{integer(1)} \cr -Degree of the polynomial used to compute B-splines. This parameter can only be used when type = "polynomial". -Default is 3. For further information consult \code{\link[splines:bs]{splines::bs()}}. +This parameter depends on type = "polynomial". Degree of the polynomial used to compute B-splines. +Default is 3. For further information look up \code{\link[splines:bs]{splines::bs()}}. \item \code{Boundary.knots} :: \code{list} \cr -Boundary points at which to anchor the B-spline basis. Parameter has to be passed as a named list. -For further information consult \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. +Boundary points at which to anchor the spline basis. Parameter has to be passed as a named list. +For further information look up \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. } } \section{Internals}{ For creating the Splines uses the \code{\link[splines:bs]{splines::bs}}/\code{\link[splines:ns]{splines::ns}} function. +After training, the \code{Boundary.Knots} that are either defined in the Parameter Set +or have been calculated during training will be passed to the \verb{$state} of the PipeOp. } \section{Fields}{ @@ -76,7 +79,7 @@ Only fields inherited from \code{\link{PipeOp}}. \section{Methods}{ -Only methods inherited from \code{\link{PipeOpTaskPreprocSimple}}/\code{\link{PipeOpTaskPreproc}}/\code{\link{PipeOp}}. +Only methods inherited from \code{\link{PipeOpTaskPreproc}}/\code{\link{PipeOp}}. } \examples{ From c8cd2cfab0f21df58ddcbcdea4aeec043951afd7 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Sun, 2 Nov 2025 21:08:54 +0100 Subject: [PATCH 31/35] changes in doc --- R/PipeOpSplines.R | 4 ++-- man/mlr_pipeops_splines.Rd | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index f075f76a8..83a0d6a70 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -39,7 +39,7 @@ #' Number of degrees of freedom for calculation of splines basis matrix. #' Default is NULL. #' For further information look up [`splines::bs()`] or [`splines::ns()`]. -#' * `knots` :: `list` \cr +#' * `knots` :: named `list` \cr #' The internal breakpoints that define the spline. The default is no knots. #' For further information consult [`splines::bs()`] or [`splines::ns()`]. #' * `intercept` :: `logical(1)` \cr @@ -48,7 +48,7 @@ #' * `degree` :: `integer(1)` \cr #' This parameter depends on type = "polynomial". Degree of the polynomial used to compute B-splines. #' Default is 3. For further information look up [`splines::bs()`]. -#' * `Boundary.knots` :: `list` \cr +#' * `Boundary.knots` :: named `list` \cr #' Boundary points at which to anchor the spline basis. Parameter has to be passed as a named list. #' For further information look up [`splines::bs()`] or [`splines::ns()`]. #' diff --git a/man/mlr_pipeops_splines.Rd b/man/mlr_pipeops_splines.Rd index 170a117f8..c82564e88 100644 --- a/man/mlr_pipeops_splines.Rd +++ b/man/mlr_pipeops_splines.Rd @@ -50,7 +50,7 @@ Default is "polynomial". Number of degrees of freedom for calculation of splines basis matrix. Default is NULL. For further information look up \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. -\item \code{knots} :: \code{list} \cr +\item \code{knots} :: named \code{list} \cr The internal breakpoints that define the spline. The default is no knots. For further information consult \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. \item \code{intercept} :: \code{logical(1)} \cr @@ -59,7 +59,7 @@ For further information look up \code{\link[splines:bs]{splines::bs()}} or \code \item \code{degree} :: \code{integer(1)} \cr This parameter depends on type = "polynomial". Degree of the polynomial used to compute B-splines. Default is 3. For further information look up \code{\link[splines:bs]{splines::bs()}}. -\item \code{Boundary.knots} :: \code{list} \cr +\item \code{Boundary.knots} :: named \code{list} \cr Boundary points at which to anchor the spline basis. Parameter has to be passed as a named list. For further information look up \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. } From 0000f52b98fa969f32cee74efbc7e49ff5ae5a10 Mon Sep 17 00:00:00 2001 From: Alexander Winterstetter Date: Wed, 5 Nov 2025 19:38:49 +0100 Subject: [PATCH 32/35] doc changes (last commit before Positron transfer) --- R/PipeOpSplines.R | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index 83a0d6a70..170edacbc 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -32,24 +32,25 @@ #' @section Parameters: #' The parameters are the parameters inherited from [`PipeOpTaskPreproc`], as well as: #' * `factor` :: `character(1)` \cr -#' "Polynomial" when polynomial splines are applied [`splines::bs`] or -#' "natural" when natural natural splines are applied [`splines::ns`]. -#' Default is "polynomial". +#' `polynomial` when polynomial splines are applied [`splines::bs`] or +#' `natural` when natural natural splines are applied [`splines::ns`]. +#' Default is `polynomial`. #' * `df` :: `integer(1)` \cr #' Number of degrees of freedom for calculation of splines basis matrix. -#' Default is NULL. +#' Default is `NULL`. #' For further information look up [`splines::bs()`] or [`splines::ns()`]. #' * `knots` :: named `list` \cr -#' The internal breakpoints that define the spline. The default is no knots. -#' For further information consult [`splines::bs()`] or [`splines::ns()`]. +#' The internal breakpoints that define the spline. Parameter has to be passed as a named list. +#' Default is `NULL`. For further information consult [`splines::bs()`] or [`splines::ns()`]. #' * `intercept` :: `logical(1)` \cr #' If `TRUE`, an intercept is included in the basis. Default is `FALSE`. #' For further information look up [`splines::bs()`] or [`splines::ns()`]. #' * `degree` :: `integer(1)` \cr #' This parameter depends on type = "polynomial". Degree of the polynomial used to compute B-splines. -#' Default is 3. For further information look up [`splines::bs()`]. +#' Default is `3`. For further information look up [`splines::bs()`]. #' * `Boundary.knots` :: named `list` \cr #' Boundary points at which to anchor the spline basis. Parameter has to be passed as a named list. +#' Default is `NULL`. #' For further information look up [`splines::bs()`] or [`splines::ns()`]. #' #' @section Internals: From c6c4545de1b1ad1e711a4a7b885b8411eac71475 Mon Sep 17 00:00:00 2001 From: awinterstetter Date: Wed, 5 Nov 2025 20:32:53 +0100 Subject: [PATCH 33/35] removed blank line --- R/PipeOpSplines.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index 170edacbc..e2897d1bc 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -136,4 +136,4 @@ PipeOpSplines = R6Class("PipeOpSplines", ) ) -mlr_pipeops$add("splines", PipeOpSplines) +mlr_pipeops$add("splines", PipeOpSplines) \ No newline at end of file From c51a2226bfb980702519e1a23a29b1e14ff20ccc Mon Sep 17 00:00:00 2001 From: awinterstetter Date: Wed, 5 Nov 2025 20:41:55 +0100 Subject: [PATCH 34/35] next positron experiment --- R/PipeOpSplines.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index e2897d1bc..d667f6d20 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -136,4 +136,5 @@ PipeOpSplines = R6Class("PipeOpSplines", ) ) -mlr_pipeops$add("splines", PipeOpSplines) \ No newline at end of file + +mlr_pipeops$add("splines", PipeOpSplines) From f6adcdfb5409e7289161954ff7e89b95049c3d03 Mon Sep 17 00:00:00 2001 From: awinterstetter Date: Thu, 6 Nov 2025 14:34:52 +0100 Subject: [PATCH 35/35] doc and test fixes --- R/PipeOpSplines.R | 15 +++++++-------- man/mlr_pipeops_splines.Rd | 25 +++++++++++++------------ tests/testthat/test_pipeop_splines.R | 4 ++-- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/R/PipeOpSplines.R b/R/PipeOpSplines.R index d667f6d20..a5b607e26 100644 --- a/R/PipeOpSplines.R +++ b/R/PipeOpSplines.R @@ -2,7 +2,7 @@ #' #' @usage NULL #' @name mlr_pipeops_splines -#' @format [`R6Class`][R6::R6Class] object inheriting from [`PipeOpTaskPreprocSimple`]/[`PipeOpTaskPreproc`]/[`PipeOp`]. +#' @format [`R6Class`][R6::R6Class] object inheriting from [`PipeOpTaskPreproc`]/[`PipeOp`]. #' #' @description #' Replaces numeric features with columns representing spline basis expansions. @@ -27,14 +27,14 @@ #' #' @section State: #' The `$state` is a named `list` with the `$state` elements inherited from [`PipeOpTaskPreproc`]. -#' After training the `Boundary.knots`will be given to the `$state`. +#' After training the `Boundary.knots` will be given to the `$state`. #' #' @section Parameters: #' The parameters are the parameters inherited from [`PipeOpTaskPreproc`], as well as: -#' * `factor` :: `character(1)` \cr +#' * `type` :: `character(1)` \cr #' `polynomial` when polynomial splines are applied [`splines::bs`] or -#' `natural` when natural natural splines are applied [`splines::ns`]. -#' Default is `polynomial`. +#' `natural` when natural splines are applied [`splines::ns`]. +#' Default is `natural`. #' * `df` :: `integer(1)` \cr #' Number of degrees of freedom for calculation of splines basis matrix. #' Default is `NULL`. @@ -54,8 +54,8 @@ #' For further information look up [`splines::bs()`] or [`splines::ns()`]. #' #' @section Internals: -#' For creating the Splines uses the [`splines::bs`]/[`splines::ns`] function. -#' After training, the `Boundary.Knots` that are either defined in the Parameter Set +#' Creates spline basis via [`splines::bs`]/[`splines::ns`] function depending on `type`. +#' After training, the `Boundary.knots` that are either defined in the Parameter Set #' or have been calculated during training will be passed to the `$state` of the PipeOp. #' #' @section Fields: @@ -136,5 +136,4 @@ PipeOpSplines = R6Class("PipeOpSplines", ) ) - mlr_pipeops$add("splines", PipeOpSplines) diff --git a/man/mlr_pipeops_splines.Rd b/man/mlr_pipeops_splines.Rd index c82564e88..c8fb58d5e 100644 --- a/man/mlr_pipeops_splines.Rd +++ b/man/mlr_pipeops_splines.Rd @@ -5,7 +5,7 @@ \alias{PipeOpSplines} \title{Transforms Numeric Features into Spline Basis Expansions} \format{ -\code{\link[R6:R6Class]{R6Class}} object inheriting from \code{\link{PipeOpTaskPreprocSimple}}/\code{\link{PipeOpTaskPreproc}}/\code{\link{PipeOp}}. +\code{\link[R6:R6Class]{R6Class}} object inheriting from \code{\link{PipeOpTaskPreproc}}/\code{\link{PipeOp}}. } \description{ Replaces numeric features with columns representing spline basis expansions. @@ -35,40 +35,41 @@ The output is the input \code{\link[mlr3:Task]{Task}} with the selected columns \section{State}{ The \verb{$state} is a named \code{list} with the \verb{$state} elements inherited from \code{\link{PipeOpTaskPreproc}}. -After training the \code{Boundary.knots}will be given to the \verb{$state}. +After training the \code{Boundary.knots} will be given to the \verb{$state}. } \section{Parameters}{ The parameters are the parameters inherited from \code{\link{PipeOpTaskPreproc}}, as well as: \itemize{ -\item \code{factor} :: \code{character(1)} \cr -"Polynomial" when polynomial splines are applied \code{\link[splines:bs]{splines::bs}} or -"natural" when natural natural splines are applied \code{\link[splines:ns]{splines::ns}}. -Default is "polynomial". +\item \code{type} :: \code{character(1)} \cr +\code{polynomial} when polynomial splines are applied \code{\link[splines:bs]{splines::bs}} or +\code{natural} when natural splines are applied \code{\link[splines:ns]{splines::ns}}. +Default is \code{natural}. \item \code{df} :: \code{integer(1)} \cr Number of degrees of freedom for calculation of splines basis matrix. -Default is NULL. +Default is \code{NULL}. For further information look up \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. \item \code{knots} :: named \code{list} \cr -The internal breakpoints that define the spline. The default is no knots. -For further information consult \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. +The internal breakpoints that define the spline. Parameter has to be passed as a named list. +Default is \code{NULL}. For further information consult \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. \item \code{intercept} :: \code{logical(1)} \cr If \code{TRUE}, an intercept is included in the basis. Default is \code{FALSE}. For further information look up \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. \item \code{degree} :: \code{integer(1)} \cr This parameter depends on type = "polynomial". Degree of the polynomial used to compute B-splines. -Default is 3. For further information look up \code{\link[splines:bs]{splines::bs()}}. +Default is \code{3}. For further information look up \code{\link[splines:bs]{splines::bs()}}. \item \code{Boundary.knots} :: named \code{list} \cr Boundary points at which to anchor the spline basis. Parameter has to be passed as a named list. +Default is \code{NULL}. For further information look up \code{\link[splines:bs]{splines::bs()}} or \code{\link[splines:ns]{splines::ns()}}. } } \section{Internals}{ -For creating the Splines uses the \code{\link[splines:bs]{splines::bs}}/\code{\link[splines:ns]{splines::ns}} function. -After training, the \code{Boundary.Knots} that are either defined in the Parameter Set +Creates spline basis via \code{\link[splines:bs]{splines::bs}}/\code{\link[splines:ns]{splines::ns}} function depending on \code{type}. +After training, the \code{Boundary.knots} that are either defined in the Parameter Set or have been calculated during training will be passed to the \verb{$state} of the PipeOp. } diff --git a/tests/testthat/test_pipeop_splines.R b/tests/testthat/test_pipeop_splines.R index db300fd60..3af1f4a2d 100644 --- a/tests/testthat/test_pipeop_splines.R +++ b/tests/testthat/test_pipeop_splines.R @@ -7,9 +7,9 @@ test_that("PipeOpSplines - basic properties", { # when we train we get the Boundary.knots, when we now predict on the same data the results will change }) -test_that("Error when trying to pass degree argument while factor = natural", { +test_that("Error when trying to pass degree argument while type = natural", { skip_if_not_installed("splines") - expect_error(po("basissplines", factor = "natural", degree = 3)) + expect_error(po("splines", type = "natural", degree = 3)) }) test_that("results are identical as when calculating by hand", {