caret로 하이퍼파라미터 튜닝

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

Dr. Shirin Elsinghorst

Senior Data Scientist

caret에서 자동 하이퍼파라미터 튜닝

랜덤 포레스트 

...

튜닝 파라미터 전반의 리샘플링 결과:

  mtry  Accuracy   Kappa    
   2    0.9006783  0.8015924
   6    0.9126645  0.8253289
  10    0.8999389  0.7999386

정확도(Accuracy)가 가장 큰 값으로 최적 모델을 선택하는 데 사용되었습니다.
최종 모델에 사용된 값은 mtry = 6입니다.
R에서 하이퍼파라미터 튜닝

하이퍼파라미터는 알고리즘별로 다릅니다

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

서포트 벡터 머신(SVM)의 하이퍼파라미터

fitControl <- trainControl(method = "repeatedcv", number = 3, repeats = 5)

tic()
svm_model <- train(diagnosis ~ ., 
                   data = bc_train_data, 
                   method = "svmPoly", 
                   trControl = fitControl,
                   verbose= FALSE)
toc()
3.836 sec elapsed
R에서 하이퍼파라미터 튜닝

서포트 벡터 머신(SVM)의 하이퍼파라미터

svm_model
다항 커널을 사용한 서포트 벡터 머신 
... 

튜닝 파라미터 전반의 리샘플링 결과:

  degree  scale  C     Accuracy   Kappa    
  1       0.100  1.00  0.9104803  0.8211459

정확도(Accuracy)가 가장 큰 값으로 최적 모델을 선택하는 데 사용되었습니다.
최종 모델에 사용된 값은 degree = 1, scale = 0.1, C = 1입니다.
R에서 하이퍼파라미터 튜닝

자동 튜닝용 하이퍼파라미터 정의

  • tuneLength
tic()
set.seed(42)
svm_model_2 <- train(diagnosis ~ ., 
                     data = bc_train_data, 
                     method = "svmPoly", 
                     trControl = fitControl,
                     verbose = FALSE,
                     tuneLength = 5)
toc()
7.458 sec elapsed

정확도(Accuracy)가 가장 큰 값으로 최적 모델을 선택하는 데 사용되었습니다.
최종 모델에 사용된 값은 degree = 1, scale = 1, C = 1입니다.
R에서 하이퍼파라미터 튜닝

caret에서 수동 하이퍼파라미터 튜닝

  • tuneGrid + expand.grid
hyperparams <- expand.grid(degree = 4, scale = 1, C = 1)

tic() set.seed(42) svm_model_3 <- train(diagnosis ~ ., data = bc_train_data, method = "svmPoly", trControl = fitControl, tuneGrid = hyperparams, verbose = FALSE) toc()
0.691 sec elapsed
R에서 하이퍼파라미터 튜닝

caret에서 수동 하이퍼파라미터 튜닝

svm_model_3
다항 커널을 사용한 서포트 벡터 머신 

...

  Accuracy   Kappa   
  0.7772947  0.554812

튜닝 파라미터 'degree'는 값 4로 고정되었습니다.
튜닝 파라미터 'scale'은 값 1로 고정되었습니다.
튜닝 파라미터 'C'는
 값 1로 고정되었습니다.
R에서 하이퍼파라미터 튜닝

이제 직접 해보세요!

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

Preparing Video For Download...