始める無料で始める

SMOTE と元データを比較する

前の演習では、SMOTE を使うと少数クラスの観測数が一気に増えることを確認しました。ここでは、その結果を元のデータと比べて、実際に何が起きたのかをつかみましょう。旧データと新データの値の頻度をもう一度確認し、2 つの散布図を並べてプロットします。そのために、あらかじめ用意された compare_plot() 関数を使います。引数は X, y, X_resampled, y_resampled, method='' です。この関数は、元のデータとリサンプリング後のデータを、それぞれ散布図として横に並べて表示します。

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

Pythonで学ぶ不正検知

コースを見る

演習の手順

  • 元のラベル y の値の頻度を表示します。y は現在 Numpy 配列なので、value_counts を使うために y を pandas の Series オブジェクトに戻してから実行します。
  • 同じ手順を y_resampled に対しても行い、値の頻度を表示します。SMOTE によって 2 クラス間のバランスがどのように変化したかが分かります。
  • 事前定義の compare_plot() 関数を使い、元データとリサンプリング後のデータを渡して、散布図を横に並べて確認します。

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

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

# Print the value_counts on the original labels y
print(pd.value_counts(pd.Series(____)))

# Print the value_counts
print(____(____(____)))

# Run compare_plot
compare_plot(____, ____, ____, ____, method='SMOTE')
コードを編集して実行