事前確率を変更して木を剪定する
動画で学んだとおり、過学習を避けるには木の剪定が必要です。前の演習では大きな木がいくつか登場しました。ここでは学んだことを実践し、事前確率を変更して構築した木を剪定していきます。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$cptableのindex行を選び、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