RandomizedSearchCV オブジェクト
Scikit Learn の GridSearchCV と同様に、RandomizedSearchCV もランダムサーチを効率的に行うための便利な機能を多数提供します。ここでは、GridSearchCV オブジェクトから必要な小さな変更を加えて、RandomizedSearchCV オブジェクトを作成します。
必要なオプションは次のとおりです。
- 既定の Gradient Boosting Classifier 推定器
- 5 分割の交差検証
- モデルの評価指標は accuracy
- 並列処理に 4 コアを使用
- 最良モデルで再学習(refit)し、学習スコアを返す
- ランダムに 10 個のモデルをサンプリング
ハイパーパラメータグリッドは、learning_rate(0.1 から 2 までの 150 個の値)と、min_samples_leaf(20 以上 64 以下のすべての整数値)に対して設定してください。
X_train と y_train のデータセットが利用可能です。
この演習はコースの一部です
Pythonでのハイパーパラメータチューニング
演習の手順
- 上記の条件に従ってパラメータグリッドを作成します。
- 上記の条件に従って
RandomizedSearchCVオブジェクトを作成します。 - その
RandomizedSearchCVオブジェクトを学習データに適合させます(fit します)。 - 両方のハイパーパラメータについて、モデリングで選ばれた値を出力します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create the parameter grid
param_grid = {'learning_rate': np.linspace(____,____,150), 'min_samples_leaf': list(range(____,65))}
# Create a random search object
random_GBM_class = ____(
estimator = ____,
____ = param_grid,
____ = 10,
scoring='____', n_jobs=____, cv = ____, refit=____, return_train_score = ____)
# Fit to the training data
random_GBM_class.fit(____, ____)
# Print the values used for both hyperparameters
print(random_GBM_class.____['param_learning_rate'])
print(random_GBM_class.cv_results_['____'])