開始使用免費開始

加入 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

編輯並執行程式碼