ランダム・オーバーサンプリング
クレジット送金のうち、不正はごくわずかです。ここでは、クラス分布をバランスさせるために、不正クラスをオーバーサンプリングします。データセット creditcard の特徴量 Class は、不正の場合は 1、それ以外は 0 を取ります。
コンソールで str() を使って creditcard の列を確認し、head() で先頭 6 行を表示し、table(creditcard$Class) でクラスのバランスを確認できます。
この演習はコースの一部です
Rで学ぶ不正検知
演習の手順
ROSEパッケージを読み込みます。- オーバーサンプリング後のデータセットが不正 30%、正当 70% になるように、必要な総件数を
n_newに指定します。そのために、現在の正当件数を、オーバーサンプリング後に望む正当の割合で割ってください。 ovun.sample()関数を使い、式はClass ~ .としてオーバーサンプリングを行います。- オーバーサンプリング後のデータセットのクラスバランスを確認します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Load ROSE
___
# Calculate the total number of required cases in the over-sampled dataset
print(table(creditcard$Class))
n_new <- ___
# Over-sample
oversampling_result <- ___(formula = ___, data = ___,
method = ___, N = ___, seed = 2018)
# Verify the Class-balance of the over-sampled dataset
oversampled_credit <- oversampling_result$data
prop.table(___(___))