始める無料で始める

ランダム・オーバーサンプリング

クレジット送金のうち、不正はごくわずかです。ここでは、クラス分布をバランスさせるために、不正クラスをオーバーサンプリングします。データセット 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(___(___))
コードを編集して実行