Feature engineering क्या है?

R में Feature Engineering

Jorge Zazueta

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

Feature engineering क्या है?

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
R में Feature Engineering

Features क्यों बनाएँ?

हम 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()

हमारा मॉडल डेटा को दर्शाने में बुरी तरह विफल है!

समय के मुकाबले ऊँचाई का लीनियर रिग्रेशन.

फिट की कमी दिखाता समय के मुकाबले ऊँचाई का लीनियर रिग्रेशन.

R में Feature Engineering

mutate() का उपयोग

किसी वस्तु की ऊँचाई निम्न सूत्र के अनुसार पराबोलिक पथ का पालन करती है:

$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
R में Feature Engineering

Engineered feature से प्रेडिक्ट करें

हम मूल फीचर के साथ नए फीचर का उपयोग करते हुए एक और रिग्रेशन मॉडल बनाते हैं।

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

अभ्यास करते हैं!

R में Feature Engineering

Preparing Video For Download...