最適パラメータを見つけるための GridSearchCV
この演習では、モデルを「行き当たりばったり」ではなく、GridSearchCV を使って体系的にチューニングします。
GridSearchCV では、候補ごとにどの評価指標でスコアするかを指定できます。詐欺検知ではできるだけ多くの不正を見つけることが重要なので、モデル設定は再現率(Recall)を最大化するよう最適化できます。もし偽陽性も減らしたい場合は F1 スコアで最適化すると、Precision-Recall のバランスが取れます。
GridSearchCV はすでに sklearn.model_selection からインポートされています。さっそく試してみましょう!
この演習はコースの一部です
Pythonで学ぶ不正検知
演習の手順
- パラメータグリッドでは、木の本数として 1 と 30 を試し、分割基準として
giniとentropyを試すように指定してください。 - モデルはシンプルな RandomForestClassifier を使い、比較できるように
random_stateは 5 のままにします。 scoringオプションは再現率を最適化するように設定してください。- 学習データ
X_trainとy_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.____