H2O로 자동 머신 러닝

R에서 하이퍼파라미터 튜닝

Dr. Shirin Elsinghorst

Senior Data Scientist

자동 머신 러닝(AutoML)

  • 하이퍼파라미터뿐 아니라 알고리즘 자동 튜닝

 

  • AutoML은 모델 튜닝과 최적화를 더 빠르고 쉽게 해줍니다

 

  • AutoML에는 데이터셋, 타깃 변수, 학습용 시간 또는 모델 수 제한만 있으면 됩니다
R에서 하이퍼파라미터 튜닝

H2O의 AutoML

AutoML은 다음을 비교합니다

  • 일반화 선형 모델(GLM)
  • (분산) 랜덤 포레스트(DRF)
  • 극단적 랜덤 트리(XRT)
  • 익스트림 그래디언트 부스팅(XGBoost)
  • 그래디언트 부스팅 머신(GBM)
  • 딥러닝(완전연결 다층 인공신경망)
  • 스택드 앙상블(전체 모델, 패밀리별 최고)
R에서 하이퍼파라미터 튜닝

GBM 하이퍼파라미터

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

딥러닝 하이퍼파라미터

  • epochs
  • adaptivate_rate
  • activation
  • rho
  • epsilon
  • input_dropout_ratio
  • hidden
  • hidden_dropout_ratios
R에서 하이퍼파라미터 튜닝
# Using h2o.automl function
automl_model <- h2o.automl(x = x, y = y,
                           training_frame = train,
                           validation_frame = valid,
                           max_runtime_secs = 60,
                           sort_metric = "logloss",
                           seed = 42)
  • 선택한 지표(여기서는 "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
R에서 하이퍼파라미터 튜닝

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
  • 기본값으로 리더보드는 5-겹 교차검증으로 계산됩니다.

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

R에서 하이퍼파라미터 튜닝

AutoML 리더보드에서 모델 추출

# List all models by 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" 
# Get the best model
aml_leader <- automl_model@leader
  • aml_leader는 표준 H2O 모델 객체이며 그대로 다룰 수 있습니다!
R에서 하이퍼파라미터 튜닝

마지막 연습을 준비하세요!

R에서 하이퍼파라미터 튜닝

Preparing Video For Download...