始める無料で始める

学習データのアンダーサンプリング

動画では、クラス不均衡の問題に対処する方法として、アンダーサンプリングやオーバーサンプリングが使えることを見ました。学習データはすでにアンダーサンプリングされており、デフォルト(延滞)クラスが全体の 1/3、非デフォルトが 2/3 になるように調整されています。結果のデータセットはワークスペース内で undersampled_training_set という名前で提供されており、観測数は少なくなっています(19394 行ではなく 6570 行)。この演習では、このアンダーサンプル済みデータセットを使って決定木を作成します。

この演習と次の演習で作られる木は非常に大きく、全体を読み取るのが難しいと感じるはずです。今は心配しなくて大丈夫です。次の動画で、より扱いやすくする方法をご紹介します!

この演習はコースの一部です

R で学ぶクレジットリスク・モデリング

コースを見る

演習の手順

  • rpart パッケージはすでにインストールされています。ワークスペースに読み込みましょう。
  • 提供されたコードを修正し、training_set の代わりにアンダーサンプル済みの学習データを使って決定木を構築してください。さらに、引数 control = rpart.control(cp = 0.001) を追加します。複雑度パラメータである cp は、任意の分割における「当てはまりの悪さ」の全体的な減少に対する閾値です。cp を満たさない場合、それ以上の分割は行われません。cp のデフォルトは 0.01 ですが、複雑な問題では cp を緩めることが推奨されます。
  • 決定木は plot 関数と木オブジェクト名を使って可視化します。枝の長さを等しくするために、第 2 引数として uniform = TRUE を追加してください。
  • 直前のコマンドはノードとエッジのみを描画し、テキスト(いわゆる「ラベル」)は表示しません。text() 関数に引数 tree_undersample だけを渡して、ラベルを追加しましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Load package rpart in your workspace.


# Change the code provided in the video such that a decision tree is constructed using the undersampled training set. Include rpart.control to relax the complexity parameter to 0.001.
tree_undersample <- rpart(loan_status ~ ., method = "class",
                          data =  training_set)

# Plot the decision tree


# Add labels to the decision tree
コードを編集して実行