始める無料で始める

事前確率を変更して木を剪定する

動画で学んだとおり、過学習を避けるには木の剪定が必要です。前の演習では大きな木がいくつか登場しました。ここでは学んだことを実践し、事前確率を変更して構築した木を剪定していきます。rpart パッケージはワークスペースに読み込まれています。

動画で説明したように、再現性を確保するために最初に乱数シードを設定します。これから交差検証の誤差結果を確認しますが、結果にはランダム性があり、異なるシードで関数を実行するとわずかに変わる可能性があります。

この演習では、交差検証誤差を最小にする複雑度パラメータ(CP)を特定し、その値に基づいて木を剪定する方法を学びます。

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

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

コースを見る

演習の手順

  • tree_prior はワークスペースに読み込まれています。
  • plotcp() を使って、tree_prior の複雑度パラメータに対する交差検証誤差(X-val Relative Error)を可視化します。
  • printcp() を使って、CP、分割数、誤差に関する情報の表を表示します。tree_prior で交差検証誤差が最小となる分割を特定できるか確認してください。
  • which.min() を使って、tree_prior$cptable のうち交差検証誤差 "xerror" が最小の行を特定し、これを index に代入します。
  • "CP" の中で、tree_prior$cptableindex 行を選び、tree_min を作成します。
  • prune() 関数を使って剪定後の木を得ます。剪定後の木は ptree_prior と名付けます。
  • パッケージ rpart.plot は読み込まれています。関数 prp()(デフォルト設定)で剪定後の木をプロットします。

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

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

# tree_prior is loaded in your workspace

# Plot the cross-validated error rate as a function of the complexity parameter


# Use printcp() to identify for which complexity parameter the cross-validated error rate is minimized.


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

# Create tree_min
tree_min <- tree_prior$cptable[index, "CP"]

#  Prune the tree using tree_min
ptree_prior <- prune(___, cp = ___)

# Use prp() to plot the pruned tree
コードを編集して実行