グリッドサーチ
ハイパーパラメータチューニングは、sklearn を使ってさまざまな入力パラメータを指定して行えます。各パラメータは numpy の関数で表現できます。param_grid で指定したすべてのハイパーパラメータの組み合わせを総当たりで探索する方法が、グリッドサーチです。この演習では、ROC 曲線の AUC を評価指標として、サンプルのランダムフォレスト分類器のハイパーパラメータをグリッドサーチで探索します。
X_train、y_train、X_test、y_test はワークスペースに用意されています。pandas は pd、numpy は np、sklearn もインポート済みです。さらに、sklearn.model_selection から GridSearchCV() が利用できます。
この演習はコースの一部です
PythonでMachine Learningを使ってCTRを予測する
演習の手順
n_estimatorsとmax_depthの各ハイパーパラメータについて、値のリストを作成します。- ランダムフォレスト分類器を作成します。
- すべてのハイパーパラメータの組み合わせを反復するグリッドサーチを設定します。
.best_score_を使って最良の AUC スコアを、.best_estimator_を使ってそのスコアを達成した最良の推定器を出力します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create list of hyperparameters
n_estimators = [10, 50]
max_depth = [5, 20]
param_grid = {'n_estimators': ____, 'max_depth': ____}
# Use Grid search CV to find best parameters
print("starting RF grid search.. ")
rf = ____()
clf = ____(estimator = rf, param_grid = ____, scoring = 'roc_auc')
clf.fit(X_train, y_train)
print("Best Score: ")
print(clf.____)
print("Best Estimator: ")
print(clf.____)