Tinh chỉnh siêu tham số

Machine Learning với Mô hình Dựa trên Cây trong R

Sandro Raabe

Data Scientist

Siêu tham số

  • Ảnh hưởng hình dạng và độ phức tạp của cây
  • Các tham số điều khiển độ phức tạp và được đặt trước khi huấn luyện

Siêu tham số trong cây quyết định của parsnip:

  • min_n: số mẫu tối thiểu để tách nút
  • tree_depth: độ sâu tối đa của cây
  • cost_complexity: phạt độ phức tạp của cây
Machine Learning với Mô hình Dựa trên Cây trong R

Vì sao cần tinh chỉnh?

Giá trị mặc định do parsnip đặt:

decision_tree(min_n = 20, tree_depth = 30, cost_complexity = 0.01)
  • Hiệu quả trong nhiều trường hợp, nhưng không tối ưu cho mọi dữ liệu

 

Mục tiêu của tinh chỉnh siêu tham số là tìm bộ giá trị tối ưu.

Machine Learning với Mô hình Dựa trên Cây trong R

Tinh chỉnh với tidymodels bằng gói tune

một lưới tinh chỉnh trống

Machine Learning với Mô hình Dựa trên Cây trong R

Tinh chỉnh với tidymodels

đặc tả mẫu

Machine Learning với Mô hình Dựa trên Cây trong R

Tinh chỉnh với tidymodels

một lưới tinh chỉnh với một mô hình huấn luyện tại mỗi điểm

Machine Learning với Mô hình Dựa trên Cây trong R

Tinh chỉnh với tidymodels

chọn điểm lưới có hiệu suất tốt nhất

Machine Learning với Mô hình Dựa trên Cây trong R

Bước 1: Tạo chỗ trống: tune()

spec_untuned <- decision_tree(

min_n = tune(), tree_depth = tune()
) %>% set_engine("rpart") %>% set_mode("classification")
Decision Tree Model Specification 
(classification)


Main Arguments: tree_depth = tune() min_n = tune()
  • tune() đánh dấu tham số cần tinh chỉnh
  • Phần còn lại của đặc tả như thường lệ
Machine Learning với Mô hình Dựa trên Cây trong R

Bước 2: Tạo lưới tinh chỉnh: grid_regular()

tree_grid <- grid_regular(

parameters(spec_untuned),
levels = 3 )
# A tibble: 9 x 2
  min_n tree_depth
1     2          1
2    21          1
3    40          1
4     2          8
5    21          8
6    40          8
7     2         15
8    21         15
9    40         15
  • Hàm hỗ trợ parameters()
  • levels: số điểm lưới cho mỗi siêu tham số
Machine Learning với Mô hình Dựa trên Cây trong R

Bước 3: Tinh chỉnh lưới: tune_grid()

  • Xây mô hình cho từng điểm lưới
  • Đánh giá từng mô hình ngoài mẫu (CV)

 

Cách dùng và tham số:

  • Đặc tả cây chưa tinh chỉnh
  • Công thức mô hình
  • Các fold CV
  • Lưới tinh chỉnh
  • Danh sách độ đo bọc trong metric_set()
tune_results <- tune_grid(

spec_untuned,
outcome ~ .,
resamples = my_folds,
grid = tree_grid,
metrics = metric_set(accuracy))
Machine Learning với Mô hình Dựa trên Cây trong R

Trực quan hóa kết quả tinh chỉnh

autoplot(tune_results)

kết quả tinh chỉnh

Machine Learning với Mô hình Dựa trên Cây trong R

Bước 4: Dùng tham số tốt nhất: finalize_model()

# Chọn bộ tham số có hiệu suất tốt nhất
final_params <- select_best(tune_results)

final_params
# A tibble: 1 x 3
    min_n    tree_depth    .config
    <int>         <int>      <chr>
1      2              8     Model4
# Gắn vào đặc tả
best_spec <- finalize_model(spec_untuned, 
                            final_params)

best_spec
Decision Tree Model Specification 
                 (classification)

Main Arguments:
  tree_depth = 8
  min_n = 2

Computational engine: rpart
Machine Learning với Mô hình Dựa trên Cây trong R

Cùng tinh chỉnh!

Machine Learning với Mô hình Dựa trên Cây trong R

Preparing Video For Download...