Tự động học máy với H2O

Tinh chỉnh siêu tham số trong R

Dr. Shirin Elsinghorst

Senior Data Scientist

Tự động học máy (AutoML)

  • Tự động tinh chỉnh thuật toán, ngoài các siêu tham số

 

  • AutoML giúp tinh chỉnh và tối ưu nhanh hơn, dễ hơn

 

  • AutoML chỉ cần tập dữ liệu, biến đíchgiới hạn thời gian hoặc số model để huấn luyện
Tinh chỉnh siêu tham số trong R

AutoML trong H2O

AutoML so sánh

  • Mô hình tuyến tính tổng quát (GLM)
  • Rừng ngẫu nhiên (phân tán) (DRF)
  • Cây ngẫu nhiên cực đoan (XRT)
  • XGBoost (tăng cường độ dốc cực đại)
  • Máy Gradient Boosting (GBM)
  • Deep Learning (mạng nơ-ron nhiều lớp fully-connected)
  • Ensemble xếp chồng (toàn bộ model & tốt nhất theo nhóm)
Tinh chỉnh siêu tham số trong R

Siêu tham số của GBM

  • histogram_type
  • ntrees
  • max_depth
  • min_rows
  • learn_rate
  • sample_rate
  • col_sample_rate
  • col_sample_rate_per_tree
  • min_split_improvement

Siêu tham số Deep Learning

  • epochs
  • adaptivate_rate
  • activation
  • rho
  • epsilon
  • input_dropout_ratio
  • hidden
  • hidden_dropout_ratios
Tinh chỉnh siêu tham số trong R
# Dùng hàm h2o.automl
automl_model <- h2o.automl(x = x, y = y,
                           training_frame = train,
                           validation_frame = valid,
                           max_runtime_secs = 60,
                           sort_metric = "logloss",
                           seed = 42)
  • trả về leaderboard của tất cả model, được xếp hạng theo metric đã chọn (ở đây "logloss")
Slot "leader":
Model Details:
==============

H2OMultinomialModel: gbm
Model Summary: 
 number_of_trees number_of_internal_trees model_size_in_bytes min_depth
             189                      567               65728         1
 max_depth mean_depth min_leaves max_leaves mean_leaves
         5    2.96649          2          6     4.20988
Tinh chỉnh siêu tham số trong R

Xem leaderboard của AutoML

lb <- automl_model@leaderboard
                                    model_id mean_per_class_error
1  GBM_grid_0_AutoML_20181029_144443_model_6           0.01851852
2 GBM_grid_0_AutoML_20181029_144443_model_30           0.02777778
3 GBM_grid_0_AutoML_20181029_144443_model_18           0.02777778
4  GBM_grid_0_AutoML_20181029_144443_model_9           0.03703704
  • Mặc định, leaderboard được tính bằng cross-validation 5-fold.

https://docs.h2o.ai/h2o/latest-stable/h2o-docs/automl.html

Tinh chỉnh siêu tham số trong R

Trích xuất model từ leaderboard AutoML

# Liệt kê tất cả model theo model id
model_ids <- as.data.frame(lb)$model_id
 [1] "GBM_grid_0_AutoML_20181029_144443_model_6"       
 [3] "GBM_grid_0_AutoML_20181029_144443_model_18"         
[19] "XRT_0_AutoML_20181029_144443"
[20] "DRF_0_AutoML_20181029_144443"            
[24] "DeepLearning_0_AutoML_20181029_144443"                        
[41] "StackedEnsemble_BestOfFamily_0_AutoML_20181029_144443" 
[42] "StackedEnsemble_AllModels_0_AutoML_20181029_144443" 
# Lấy model tốt nhất
aml_leader <- automl_model@leader
  • aml_leader là một đối tượng H2O model thông thường và có thể dùng như vậy!
Tinh chỉnh siêu tham số trong R

Sẵn sàng cho lượt bài tập cuối!

Tinh chỉnh siêu tham số trong R

Preparing Video For Download...