多数派クラスを縮小する
データセット内の詐欺ケースを増やす代わりに、正当なケースをランダムに削除してバランスを取ることもできます。creditcard データセットで多数派クラス(Class = 0)をアンダーサンプリングしてみましょう。コンソールで table() を使うと、詐欺と正当な取引がそれぞれ何件あるかを確認できます。
この演習はコースの一部です
Rで学ぶ不正検知
演習の手順
- ROSE ライブラリを読み込みます。
- アンダーサンプリング後のデータセットで詐欺ケースが 40% になるように、必要な総件数として
n_newを指定します。このために、詐欺ケースの件数を、アンダーサンプリング後に望む詐欺比率で割ってください。 - データセットをアンダーサンプリングします。
- アンダーサンプリング後のデータセットのクラスバランスを、
table()とprop.table()で確認します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Load ROSE
___
# Calculate the required number of cases in the over-sampled dataset
n_new <- ___
# Under-sample
undersampling_result <- ___(formula = ___, data = ___,
___ = ___, ___ = ___, seed = 2018)
# Verify the Class-balance of the under-sampled dataset
undersampled_credit <- undersampling_result$___
___(___(___))