ハイパーパラメータのチューニング

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コンペティション

Let's practice!

Pythonで挑むKaggleコンペティション

Preparing Video For Download...