加入 loss 矩陣
第三,你可以加入一個 loss 矩陣,用來改變兩種誤分類的相對重要性:把「違約」誤分為「未違約」,以及把「未違約」誤分為「違約」。你想強調的是,將實際違約誤判為未違約,應該要有更高的懲罰。你可以在引數 parms 中加入 loss 矩陣來達成這件事。
parms = list(loss = matrix(c(0, cost_def_as_nondef, cost_nondef_as_def, 0), ncol=2))
這樣會建立一個 2x2 的矩陣,對角線為 0,非對角線為指定的懲罰值。預設的 loss 矩陣是在非對角線上皆為 1。
本練習屬於課程
R 的信用風險建模
練習說明
- 修改提供的程式碼以加入此 loss 矩陣:當把實際違約誤判為未違約時,懲罰提高為 10 倍。也就是將
cost_def_as_nondef改為 10,cost_nondef_as_def改為 1。和前面練習一樣,加入rpart.control,把複雜度參數放寬為 0.001。 - 使用函式 plot 與樹物件名稱來繪製決策樹。加入第二個引數
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