R'da Feature Engineering
Jorge Zazueta
Research Professor and Head of the Modeling Group at the School of Economics, UASLP
Özellik mühendisliği,
işlemlerinin, model performansı ve yorumlanabilirliğini artırmak için değişkenler üzerinde uygulanmasıdır.
Bir nesnenin zamanın fonksiyonu olarak yüksekliği
# 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
Yükseklik için basit bir regresyon modeli kuruyoruz
lr_height <- lm(height ~ time,
data = height)
ve görsel olarak doğruluğunu değerlendiriyoruz.
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()
Modelimiz veriyi temsil etmede berbat kalıyor!
Yükseklik ile zamanın doğrusal regresyonu.

Bir nesnenin yüksekliği, aşağıdaki formülle verilen parabolik bir yolu izler:
$y(t) = y_0 + v_0t - \frac{g}{2}t^2$.
Burada $y$, zaman $t$'deki yüksekliği; $y_0$, $v_0$ ve $g$ ise sırasıyla başlangıç yüksekliği, hız ve yerçekimi ivmesini ifade eder.
Yüksekliğin hem zamana hem de zamanın karesine bağlılığını dikkate alarak model kurabiliriz.
mutate() ilk argüman olarak bir veri çerçevesi alır ve bu çerçeveye eklenecek yeni değişkenin tanımını ister.
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
Yeni özelliğimizi orijinaliyle birlikte kullanarak başka bir regresyon modeli kuruyoruz.
lr_height_2 <-
lm(height ~ time + time_2, data = df_2)
Ve yeni tahminimizi görselleştiriyoruz.
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()
Farklı bir modele başvurmadan etkileyici bir iyileşme.
Yükseklik vs. zaman ve time_2

R'da Feature Engineering