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
Một số dữ liệu có cột hằng số hoặc phương sai bằng 0. Ta có thể lọc các đặc trưng này bằng cách thêm step_zv() vào recipe().

Đặc trưng gần như phương sai bằng 0 gồm các biến dự báo có một giá trị duy nhất và các biến dự báo có cả hai đặc điểm sau:
Rất ít giá trị khác biệt so với số lượng mẫu
Tỉ lệ giữa tần suất giá trị phổ biến nhất và giá trị phổ biến thứ hai là lớn
Ví dụ gần như phương sai bằng 0:
step_nzv() xác định và loại bỏ các biến dự báo có các đặc điểm này.
Bộ dữ liệu 3 chiều gốc với hai lớp.

Bộ dữ liệu đã giảm chiều, biểu diễn bằng hai thành phần chính đầu tiên.

Tạo recipe để thực hiện PCA và lấy kết quả qua prep().
pc_recipe <-
recipe(~., data = loans_num) %>%
step_nzv(all_numeric()) %>%
step_normalize(all_numeric()) %>%
step_pca(all_numeric())
pca_output <- prep(pc_recipe)
Ta có thể xem thông tin sẵn có bằng cách gọi names() trên pca_output.
names(pca_output)
[1] "var_info" "term_info"
[3] "steps" "template"
[5] "levels" "retained"
[7] "requirements" "tr_info"
[9] "orig_lvls" "last_term_info"
Trích xuất độ lệch chuẩn từ đối tượng pca_output và tính phương sai giải thích.
stdv <- pca_output$steps[[3]]$res$sdev
var_explained <- stdv^2/sum(stdv^2)
PCA = tibble(PC = 1:length(stdv),
var_explained = var_explained,
cumulative = cumsum(var_explained))
Bảng cho thấy phương sai do từng thành phần chính giải thích.
# A tibble: 5 × 3
PC var_explained cumulative
<int> <dbl> <dbl>
1 1 0.315 0.315
2 2 0.214 0.529
3 3 0.202 0.730
4 4 0.198 0.928
5 5 0.0722 1
Ta có thể vẽ biểu đồ cột bằng ggplot2.
PCA %>%
ggplot(aes(x = PC,
y = var_explained)) +
geom_col(fill = "steelblue") +
xlab("Principal components") +
ylab("Variance explained")
Phương sai do từng thành phần chính giải thích.

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