始める無料で始める

最後に、さらに多くのオプションを使った木

この演習では、動画で取り上げた最後のいくつかの引数を使います。rpart.control() 関数でいくつかの指定を変更し、rpart()weights 引数を使って重みを加えます。ベクター case_weights はあらかじめ作成済みで、ワークスペースに読み込まれています。このベクターには、学習データ内の非デフォルトに重み1、デフォルトに重み3が設定されています。デフォルトに高い重みを与えることで、モデルはデフォルトを正しく分類することをより重視するようになります。

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

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

コースを見る

演習の手順

  • 乱数シードを345に設定します。
  • 提供されたコードに、rpart()weights 引数へ case_weights を渡す処理を追加します。
  • rpart.control の引数 minsplitminbucket を使って、ノードで許可される最小分割数を5、リーフノードで許可される観測数の最小値を2に変更します。
  • plotcp() 関数を使って、交差検証誤差率が最小になる位置を確認します。
  • which.min() を使って、tree_weights$cp 内で "xerror" が最小の行を特定し、これを index に代入します。
  • 提供されたコードを使って、交差検証誤差が最小となる cp を選択します。
  • 交差検証誤差率が最小となる複雑度パラメータで木を剪定し、剪定後の木を ptree_weights に保存します。
  • prp() 関数で剪定後の木をプロットします。第2引数 extra を含め、1 に設定してください。

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

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

# set a seed and run the code to obtain a tree using weights, minsplit and minbucket
set.seed(345)
tree_weights <- rpart(loan_status ~ ., method = "class",
                      data = training_set,
                      control = rpart.control(minsplit = ___, minbucket = ___, cp = 0.001))

# Plot the cross-validated error rate for a changing cp


# Create an index for of the row with the minimum xerror
index <- which.min(___$___[ , "xerror"])

# Create tree_min
tree_min <- tree_weights$cp[index, "CP"]

# Prune the tree using tree_min


# Plot the pruned tree using the rpart.plot()-package
コードを編集して実行