Kỹ thuật đặc trưng (Feature Engineering) với R
Jorge Zazueta
Research Professor and Head of the Modeling Group at the School of Economics, UASLP
Kỹ thuật đặc trưng là nghệ thuật và khoa học của việc
biến để cải thiện hiệu năng và khả năng giải thích của mô hình.
Chiều cao của vật theo thời gian
# 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
Ta tạo một mô hình hồi quy tuyến tính đơn giản cho chiều cao
lr_height <- lm(height ~ time,
data = height)
và vẽ để ước lượng độ chính xác bằng mắt.
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()
Mô hình của ta biểu diễn dữ liệu rất kém!
Hồi quy tuyến tính: chiều cao so với thời gian.

Chiều cao của vật đi theo quỹ đạo parabol theo công thức:
$y(t) = y_0 + v_0t - \frac{g}{2}t^2$.
Trong đó $y$ là chiều cao tại thời điểm $t$, còn $y_0$, $v_0$, và $g$ lần lượt là độ cao ban đầu, vận tốc ban đầu, và gia tốc trọng trường.
Ta có thể khớp mô hình, thừa nhận phụ thuộc của chiều cao vào cả thời gian và bình phương của thời gian.
mutate() nhận data frame làm đối số đầu và định nghĩa biến mới để thêm vào data frame.
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
Ta tạo một mô hình hồi quy khác, dùng đặc trưng mới cùng với đặc trưng gốc.
lr_height_2 <-
lm(height ~ time + time_2, data = df_2)
Và vẽ dự đoán mới.
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()
Đó là một cải thiện rõ rệt mà không cần đổi mô hình.
Chiều cao theo thời gian và time_2

Kỹ thuật đặc trưng (Feature Engineering) với R