始める無料で始める

不正検知向けにRandom Forestを調整する

この演習では、random forest classifier のオプションを掘り下げ、フォレスト内の決定木に対して重みを割り当て形状を調整します。クラス不均衡を少しでも相殺できるよう、手動で重みを定義します。今回は不正300件に対して非不正7000件があるため、重み比を1:12に設定すると、不正1/3、非不正2/3程度の比率になり、モデルの学習には十分です。

この演習のデータはすでに学習用とテスト用に分割済みです。モデルの定義に集中してください。その後はショートカットとして関数 get_model_results() を使えます。この関数は、学習データへの適合、予測、そして前の演習で行った手順と同様の評価指標の取得までを実行します。

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

Pythonで学ぶ不正検知

コースを見る

演習の手順

  • 非不正と不正の比率が1対12になるように weight オプションを変更し、分割基準を 'entropy' に設定します。
  • 最大深さを10に設定します。
  • 葉ノードの最小サンプル数を10に設定します。
  • モデルで使用する木の本数を20に設定します。

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

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

# Change the model options
model = RandomForestClassifier(bootstrap=True, class_weight={0:____, 1:____}, criterion='____',
			
			# Change depth of model
            max_depth=____,
		
			# Change the number of samples in leaf nodes
            min_samples_leaf=____, 

			# Change the number of trees to use
            n_estimators=____, n_jobs=-1, random_state=5)

# Run the function get_model_results
get_model_results(X_train, y_train, X_test, y_test, model)
コードを編集して実行