Ce este ingineria caracteristicilor?

Ingineria caracteristicilor în R

Jorge Zazueta

Research Professor and Head of the Modeling Group at the School of Economics, UASLP

Ce este ingineria caracteristicilor?

Ingineria caracteristicilor este arta și știința de a

  • crea,
  • transforma,
  • extrage și
  • selecta

variabile pentru a îmbunătăți performanța și interpretabilitatea modelelor.

Înălțimea unui obiect în funcție de timp

# A tibble: 100 × 2
    time height
   <dbl>  <dbl>
 1 0       0   
 2 0.101   3.85
 3 0.202  17.7 
 4 0.303  15.1 
 5 0.404  20.0 
 6 0.505  32.6 
 7 0.606  30.8 
 8 0.707  26.6 
 9 0.808  33.8 
10 0.909  39.2 
# ... with 90 more rows
# ℹ Use `print(n = ...)` to see more rows
Ingineria caracteristicilor în R

De ce să creăm caracteristici?

Creăm un model de regresie simplu pentru înălțime

lr_height <- lm(height ~ time,
                data = height)

și îl reprezentăm grafic pentru a evalua acuratețea vizual.

df <- height %>% 
bind_cols(lr_pred = predict(lr_height))

df %>%
  ggplot(aes(x = time, y = height)) +
  geom_point() +
  geom_line(aes(y = lr_pred), 
            color = "blue", lwd = .75)+
    theme_classic()

Modelul nostru nu reușește să reprezinte datele!

Regresie liniară: înălțime vs. timp.

Regresie liniară a înălțimii față de timp, ilustrând lipsa de potrivire.

Ingineria caracteristicilor în R

Utilizarea mutate()

Înălțimea unui obiect urmează o traiectorie parabolică dată de formula:

$y(t) = y_0 + v_0t - \frac{g}{2}t^2$.

Unde $y$ reprezintă înălțimea obiectului la momentul $t$, iar $y_0$, $v_0$ și $g$ sunt, respectiv, înălțimea inițială, viteza și accelerația gravitațională.

Putem ajusta modelul, recunoscând dependența înălțimii atât de timp, cât și de pătratul timpului.

mutate() primește un cadru de date ca prim argument și definiția unei noi variabile de adăugat.

df_2 <- df %>% mutate(time_2 = time^2)
# A tibble: 100 × 4
    time height lr_pred time_2
   <dbl>  <dbl>   <dbl>  <dbl>
 1 0       0       80.8 0     
 2 0.101   3.85    80.9 0.0102
 3 0.202  17.7     81.0 0.0408
 4 0.303  15.1     81.1 0.0918
Ingineria caracteristicilor în R

Predicție cu caracteristica creată

Creăm un alt model de regresie, folosind noua caracteristică împreună cu cea originală.

lr_height_2 <- 
lm(height ~ time + time_2, data = df_2)

Și reprezentăm grafic noua predicție.

df_2 <- df_2 %>%
    bind_cols(lr2_pred = predict(lr_height_2))
df_2 %>%
  ggplot(aes(x = time, y = height)) +
  geom_point() +
  geom_line(aes(y = lr2_pred), 
      col = "blue", lwd = .75) +
  theme_classic()

O îmbunătățire remarcabilă fără a schimba modelul.

Înălțime vs. timp și time_2

Ingineria caracteristicilor în R

Să exersăm!

Ingineria caracteristicilor în R

Preparing Video For Download...