学習データのアンダーサンプリング
動画では、クラス不均衡の問題に対処する方法として、アンダーサンプリングやオーバーサンプリングが使えることを見ました。学習データはすでにアンダーサンプリングされており、デフォルト(延滞)クラスが全体の 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