step-dummy

tidymodels
statlearning
schoice
Published

June 14, 2023

Aufgabe

Viele Lernalgorithmen können nicht mit nominalen Variablen umgehen; daher muss man sie dummifizieren, um sie einer Verarbeitung zugänglich zu machen. In Tidymodels gibt es dafür step_dummy().

Aber bezieht step_dummy() nur Variablen vom Typ factor ein oder auch Variablen vom Typ character? Oder vielleicht weder noch?

Hinweise:

Answerlist

  • Nur Variablen vom Typ factor
  • Nur Variablen vom Typ character
  • Sowohl Variablen vom Typ factor als auch vom Typ character
  • Weder Variablen vom Typ factor noch vom Typ character











Lösung

Setup

library(tidymodels)

Daten:

d <-
  data.frame(
    y = c(1,2,3,4,5),
    x = c("A", "B", "B", "C", "A")
  )

str(d)
'data.frame':   5 obs. of  2 variables:
 $ y: num  1 2 3 4 5
 $ x: chr  "A" "B" "B" "C" ...

Rezept 1

Rezept 1, mit Variable vom Typ character:

rec <-
  recipe(y ~ x, data = d) %>% 
  step_dummy(x)

d_baked <- rec %>% 
  prep() %>% 
  bake(new_data = NULL)

str(d_baked)
tibble [5 × 3] (S3: tbl_df/tbl/data.frame)
 $ y  : num [1:5] 1 2 3 4 5
 $ x_B: num [1:5] 0 1 1 0 0
 $ x_C: num [1:5] 0 0 0 1 0

Rezept 2

Rezept 2, mit Variable vom Typ factor:

Daten:

d2 <-
  data.frame(
    y = c(1,2,3,4,5),
    x = factor(c("A", "B", "B", "C", "A"))
  )

str(d2)
'data.frame':   5 obs. of  2 variables:
 $ y: num  1 2 3 4 5
 $ x: Factor w/ 3 levels "A","B","C": 1 2 2 3 1
rec2 <-
  recipe(y ~ x, data = d2) %>% 
  step_dummy(x)

d_baked2 <- rec2 %>% 
  prep() %>% 
  bake(new_data = NULL)

str(d_baked2)
tibble [5 × 3] (S3: tbl_df/tbl/data.frame)
 $ y  : num [1:5] 1 2 3 4 5
 $ x_B: num [1:5] 0 1 1 0 0
 $ x_C: num [1:5] 0 0 0 1 0

Answerlist

  • Falsch
  • Falsch
  • Wahr. step_dummy transformiert beide Arten von Variablen
  • Falsch

Categories:

  • tidymodels
  • statlearning
  • schoice