Mô hình rừng ngẫu nhiên

Giảm Chiều Dữ Liệu với R

Matt Pickard

Owner, Pickard Predictives, LLC

Rừng ngẫu nhiên

  • Một mô hình tập hợp
    • cách tiếp cận “khôn ngoan của đám đông”
  • Tổng hợp dự đoán từ nhiều cây ngẫu nhiên
  • Cây ngẫu nhiên không tương quan giảm lỗi
  • Tránh quá khớp
  • Chính xác
  • Thực hiện chọn đặc trưng

Sơ đồ một mô hình tập hợp gồm nhiều cây quyết định và cách gộp phiếu thành một kết quả cuối.

Giảm Chiều Dữ Liệu với R

Rừng ngẫu nhiên

Sơ đồ cho thấy các cây con được tạo từ những tập con đặc trưng khác nhau.

Giảm Chiều Dữ Liệu với R

Huấn luyện rừng ngẫu nhiên

library(tidymodels)

rf <- rand_forest(mode = "classification", trees = 200) %>% set_engine("ranger", importance = "impurity")
rf_fit <- rf %>% fit(credit_score ~ ., data = train)
predict_df <- test %>% bind_cols(predict = predict(rf_fit, test))
Giảm Chiều Dữ Liệu với R

Đánh giá mô hình

f_meas(predict_df, credit_score, .pred_class)
0.6895
Giảm Chiều Dữ Liệu với R

Độ quan trọng biến

library(vip)

rf_fit %>% vip()

Biểu đồ cột độ quan trọng biến.

Giảm Chiều Dữ Liệu với R

Mặt nạ đặc trưng

top_features <- rf_fit %>% 
  vi(rank = TRUE) %>% 
  filter(Importance <= 10) %>% 
  pull(Variable)

top_features
 [1] "outstanding_debt"        "interest_rate"          
 [3] "delay_from_due_date"     "changed_credit_limit"   
 [5] "credit_history_months"   "num_credit_card"        
 [7] "monthly_balance"         "num_of_delayed_payment" 
 [9] "annual_income"           "amount_invested_monthly"
Giảm Chiều Dữ Liệu với R

Giảm dữ liệu

train_reduced <- train[top_features]
test_reduced <- test[top_features]
Giảm Chiều Dữ Liệu với R

Hiệu năng

rf_fit <- rf %>% 
  fit(credit_score ~ ., data = train_reduced) 

predict_reduced_df <- test_reduced %>% bind_cols(predict = predict(rf_fit, test_reduced))
f_meas(predict_reduced_df, credit_score, .pred_class)
0.6738 

F-score của mô hình chưa giảm:

0.6895 
Giảm Chiều Dữ Liệu với R

Ayo berlatih!

Giảm Chiều Dữ Liệu với R

Preparing Video For Download...