始める無料で始める

最適パラメータを見つけるための GridSearchCV

この演習では、モデルを「行き当たりばったり」ではなく、GridSearchCV を使って体系的にチューニングします。

GridSearchCV では、候補ごとにどの評価指標でスコアするかを指定できます。詐欺検知ではできるだけ多くの不正を見つけることが重要なので、モデル設定は再現率(Recall)を最大化するよう最適化できます。もし偽陽性も減らしたい場合は F1 スコアで最適化すると、Precision-Recall のバランスが取れます。

GridSearchCV はすでに sklearn.model_selection からインポートされています。さっそく試してみましょう!

この演習はコースの一部です

Pythonで学ぶ不正検知

コースを見る

演習の手順

  • パラメータグリッドでは、木の本数として 1 と 30 を試し、分割基準として ginientropy を試すように指定してください。
  • モデルはシンプルな RandomForestClassifier を使い、比較できるように random_state は 5 のままにします。
  • scoring オプションは再現率を最適化するように設定してください。
  • 学習データ X_trainy_train にフィットし、モデルの最良パラメータを取得してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Define the parameter sets to test
param_grid = {'n_estimators': [____, ____], 'max_features': ['auto', 'log2'],  'max_depth': [4, 8], 'criterion': ['____', '____']
}

# Define the model to use
model = ____(random_state=5)

# Combine the parameter sets with the defined model
CV_model = GridSearchCV(estimator=model, param_grid=param_grid, cv=5, scoring='____', n_jobs=-1)

# Fit the model to our training data and obtain best parameters
CV_model.fit(____, ____)
CV_model.____
コードを編集して実行