始める無料で始める

多数派クラスを縮小する

データセット内の詐欺ケースを増やす代わりに、正当なケースをランダムに削除してバランスを取ることもできます。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$___
___(___(___))
コードを編集して実行