하이퍼파라미터 튜닝

Python으로 Kaggle 대회 공략하기

Yauhen Babakhin

Kaggle Grandmaster

반복

모델 검증 RMSE 퍼블릭 LB RMSE 퍼블릭 LB 순위
단순 평균 9.986 9.409 1449 / 1500
그룹 평균 9.978 9.407 1411 / 1500
그래디언트 부스팅 5.996 4.595 1109 / 1500
시간 특징 추가 5.553 4.352 1068 / 1500
거리 특징 추가 5.268 4.103 1006 / 1500
... ... ... ...
Python으로 Kaggle 대회 공략하기

반복

모델 검증 RMSE 퍼블릭 LB RMSE 퍼블릭 LB 순위
단순 평균 9.986 9.409 1449 / 1500
그룹 평균 9.978
그래디언트 부스팅 5.996 4.595 1109 / 1500
시간 특징 추가 5.553
거리 특징 추가 5.268 4.103 1006 / 1500
... ... ... ...
Python으로 Kaggle 대회 공략하기

하이퍼파라미터 최적화

 

대회 유형 피처 엔지니어링 하이퍼파라미터 최적화
클래식 머신러닝 +++ +
딥러닝 - +++
Python으로 Kaggle 대회 공략하기

리지 회귀

 

최소제곱 선형회귀

$$Loss = \sum_{i=1}^{N}{(y_i - \hat{y}_i)^2} \to \min$$

Python으로 Kaggle 대회 공략하기

리지 회귀

 

최소제곱 선형회귀

$$Loss = \sum_{i=1}^{N}{(y_i - \hat{y}_i)^2} \to \min$$

리지 회귀

$$Loss = \sum_{i=1}^{N}{(y_i - \hat{y}_i)^2 + \alpha\sum_{j=1}^{K}{{w_j}^2}} \to \min$$

Python으로 Kaggle 대회 공략하기

하이퍼파라미터 최적화 전략

 

  • 그리드 서치. 미리 정한 하이퍼파라미터 값 격자를 선택합니다
  • 랜덤 서치. 하이퍼파라미터 값 탐색 공간을 설정합니다
  • 베이지안 최적화. 하이퍼파라미터 값 탐색 공간을 설정합니다

그리드 서치 개요

랜덤 서치 개요

Python으로 Kaggle 대회 공략하기

그리드 서치

# Possible alpha values
alpha_grid = [0.01, 0.1, 1, 10]

from sklearn.linear_model import Ridge results = {} # For each value in the grid for candidate_alpha in alpha_grid:
# Create a model with a specific alpha value ridge_regression = Ridge(alpha=candidate_alpha)
# Find the validation score for this model
# Save the results for each alpha value results[candidate_alpha] = validation_score
Python으로 Kaggle 대회 공략하기

Vamos praticar!

Python으로 Kaggle 대회 공략하기

Preparing Video For Download...