始める無料で始める

モデルの調整

極端に不均衡な不正検知データに対してランダムフォレストモデルを調整する簡単な方法は、sklearn のモデル定義時に class_weights オプションを使うことです。ただしご覧のとおり、やや大ざっぱな手段であり、特定のケースではうまく機能しないこともあります。

この演習では、前の演習で使った Random Forest モデルで weight = "balanced_subsample" モードを試します。データはすでに学習用とテスト用に分割済みで、X_trainX_testy_trainy_test が利用できます。評価用のメトリクス関数もインポート済みです。

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

Pythonで学ぶ不正検知

コースを見る

演習の手順

  • 分類器の class_weight 引数を balanced_subsample に設定します。
  • 学習用データでモデルを学習させます。
  • X_test から予測と確率を取得します。
  • roc_auc_score、分類レポート、混同行列を取得します。

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

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

# Define the model with balanced subsample
model = RandomForestClassifier(class_weight='____', random_state=5)

# Fit your training model to your training set
model.fit(____, ____)

# Obtain the predicted values and probabilities from the model 
predicted = ____.____(____)
probs = ____.____(____)

# Print the roc_auc_score, the classification report and confusion matrix
print(____(____, ____))
print(____(____, ____))
print(____(____, ____))
コードを編集して実行