You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The doc says that is should encode character() columns, but:
library(mlr3)
library(mlr3pipelines)
data=data.table::data.table(x=letters[1:3], y=factor(letters[1:3]))
task= as_task_classif(data, id="task", target="y")
poe= po("encode")
poe$train(list(task))[[1]]$data() # no encoding!#> y x#> 1: a a#> 2: b b#> 3: c c
The text was updated successfully, but these errors were encountered:
bblodfon
changed the title
po("encode") doesn't work for features of type character()PipeOpEncode doesn't work for features of type character()Dec 11, 2023
The semantics of a character feature (at least as far as mlr3pipelines sees it) are that it contains "free text", as opposed to levels of a fixed set of possible values (like factors). One would typically apply "nlp" methods on character features, e.g. using po("textvectorizer") to extract a bag of words representation.
If you really want to do factor encoding on character features, then your case is comparable to wanting to do factor encoding on numeric features: what you really want is for mlr3 to see the semantics of your feature in a non-standard way. The solution for this is to convert your feature, using po("colapply", applicator = as.factor). Does your usecase work with that?
Martin the issue here is that many datasets that we use in R, have factors as characters (in terms of their type). So when users try to do (factor) encoding, they expect to get the feature called sex ("male" and "female") encoded but they don't. The colapply is a workaround for sure (+affect_columns needs to be configured properly, extra thing) but if docs says the PipeOp does work on character features but it actually doesn't work, well one of the two needs to be changed/updated :)
The doc says that is should encode
character()
columns, but:Created on 2023-12-11 with reprex v2.0.2
The text was updated successfully, but these errors were encountered: