ロス行列を含める
3つ目に、ロス行列を含めることで、デフォルト(延滞)を非デフォルトと誤分類することと、非デフォルトをデフォルトと誤分類することの相対的重要度を変えられます。ここでは、デフォルトを非デフォルトと誤分類するほうに、より大きなペナルティを与えたいとします。ロス行列の指定は、引数 parms に含めて行います。
parms = list(loss = matrix(c(0, cost_def_as_nondef, cost_nondef_as_def, 0), ncol=2))
この指定では、対角成分が0、対角外の成分に変更したロスペナルティを持つ 2×2 の行列を作成しています。デフォルトのロス行列では、対角外の成分はすべて1です。
この演習はコースの一部です
R で学ぶクレジットリスク・モデリング
演習の手順
- 提示されたコードを、ロス行列を含むように変更し、実際のデフォルトを非デフォルトと誤分類した場合のペナルティが10倍になるようにしてください。これは
cost_def_as_nondefを 10、cost_nondef_as_defを 1 に置き換えることで行えます。前の演習と同様に、rpart.controlを含めて複雑度パラメータを 0.001 に緩和してください。 - 決定木は、関数 plot に木オブジェクト名を渡して描画します。枝を等しい長さにするため第2引数に
uniform = TRUEを追加し、text()に木オブジェクト名を渡してラベルを追加してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Change the code below such that a decision tree is constructed using a loss matrix penalizing 10 times more heavily for misclassified defaults.
tree_loss_matrix <- rpart(loan_status ~ ., method = "class",
data = training_set)
# Plot the decision tree
# Add labels to the decision tree