RandomizedSearchCV

Python によるモデル検証

Kasey Jones

Data Scientist

ハイパーパラメータのグリッドサーチ

複数のハイパーパラメータから値を選ぶと、候補の組合せでグリッドができる。これをハイパーパラメータ空間という。

Python によるモデル検証

グリッドサーチの続き

利点:

  • すべての組合せを評価

欠点:

  • ハイパーパラメータが増えると学習時間が指数関数的に増加
Python によるモデル検証

より良い手法

Python によるモデル検証

ランダムサーチ

from sklearn.model_selection import RandomizedSearchCV

random_search = RandomizedSearchCV()

パラメータ分布:

param_dist = {"max_depth": [4, 6, 8, None],
              "max_features": range(2, 11),
              "min_samples_split": range(2, 11)}
Python によるモデル検証

ランダムサーチのパラメータ

パラメータ:

  • estimator: 使用するモデル
  • param_distributions: ハイパーパラメータと候補値の辞書
  • n_iter: 反復回数
  • scoring: 評価指標
Python によるモデル検証

RandomizedSearchCV の設定

param_dist = {"max_depth": [4, 6, 8, None],
              "max_features": range(2, 11),
              "min_samples_split": range(2, 11)}
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import make_scorer, mean_absolute_error

rfr = RandomForestRegressor(n_estimators=20, random_state=1111)
scorer = make_scorer(mean_absolute_error)
Python によるモデル検証

RandomizedSearchCV の実装

ランダムサーチのセットアップ:

random_search =\
    RandomizedSearchCV(estimator=rfr,
                       param_distributions=param_dist,
                       n_iter=40,
                       cv=5)
  • モデル検証を理解せずにハイパーパラメータ調整はできない
  • モデル検証で複数のモデルや設定を比較できる
Python によるモデル検証

RandomizedSearchCV の実装

ランダムサーチのセットアップ:

random_search =\
    RandomizedSearchCV(estimator=rfr,
                       param_distributions=param_dist,
                       n_iter=40,
                       cv=5)

ランダムサーチを実行:

random_search.fit(X, y)
Python によるモデル検証

例を見てみましょう!

Python によるモデル検証

Preparing Video For Download...