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')