R में Feature Engineering
Jorge Zazueta
Research Professor and Head of the Modeling Group at the School of Economics, UASLP
Feature engineering {{1}} की कला और विज्ञान है:
मॉडल के प्रदर्शन और व्याख्यात्मकता बेहतर करने के लिए वैरिएबल्स।
समय के साथ किसी वस्तु की ऊँचाई
# 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
हम height का एक सरल रिग्रेशन मॉडल बनाते हैं
lr_height <- lm(height ~ time,
data = height)
और सटीकता को आँख से परखने के लिए उसे ग्राफ करते हैं।
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()
हमारा मॉडल डेटा को दर्शाने में बुरी तरह विफल है!
समय के मुकाबले ऊँचाई का लीनियर रिग्रेशन.

किसी वस्तु की ऊँचाई निम्न सूत्र के अनुसार पराबोलिक पथ का पालन करती है:
$y(t) = y_0 + v_0t - \frac{g}{2}t^2$.
जहाँ $y$ समय $t$ पर ऊँचाई है, और $y_0$, $v_0$, तथा $g$ क्रमशः शुरुआती ऊँचाई, वेग, और गुरुत्वजनित त्वरण हैं।
हम ऊँचाई की निर्भरता समय और समय के वर्ग दोनों पर मानकर अपना मॉडल फिट कर सकते हैं।
mutate() पहला आर्ग्यूमेंट के रूप में डेटा फ्रेम लेता है और नए वैरिएबल की परिभाषा देता है, जिसे उसी डेटा फ्रेम में जोड़ा जाएगा।
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
हम मूल फीचर के साथ नए फीचर का उपयोग करते हुए एक और रिग्रेशन मॉडल बनाते हैं।
lr_height_2 <-
lm(height ~ time + time_2, data = df_2)
और नई भविष्यवाणी का ग्राफ बनाते हैं।
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()
बिना मॉडल बदले यह प्रभावशाली सुधार है।
Height बनाम time और time_2

R में Feature Engineering