開始使用免費開始

計算樹的增益(gain)

在影片中,你看過如何使用 Gini 測度來為決策樹找出最佳切分。現在,你要計算已載入到你工作空間中的這棵樹的增益。

這個資料集共有 500 筆個案,其中有 89 筆為違約。根節點的 Gini 因此為 0.292632。小提醒:某個節點的 Gini = 2 × 該節點中違約的比例 × 該節點中非違約的比例。可參考以下程式碼複習。

gini_root <- 2 * (89 / 500) * (411 / 500)

你會用這些 Gini 值來計算各葉節點相對於根節點的增益。先看下面的程式片段,了解如何用你計算出的 Gini 來求某個節點的增益。

Gain = gini_root - (prop(cases left leaf) * gini_left) - (prop(cases right leaf * gini_right))

請計算左側與右側節點的 Gini,並求出兩個葉節點相對於根節點的增益。樹的物件為 small_tree

本練習屬於課程

R 的信用風險建模

檢視課程

練習說明

  • 已提供根節點 Gini 的計算。
  • 計算左側葉節點的 Gini 測度。
  • 計算右側葉節點的 Gini 測度。
  • 以根節點 Gini 減去加權後葉節點 Gini 值,計算增益(gain)。
  • 關於此樹的切分資訊,可使用樹物件 small_tree$split 來查看。這裡不要看 gain,而是查看 improve 欄位。improve 是 gain 的替代指標,等於將 gain 乘上資料集中個案數得到。請確認物件 improve(程式碼已提供)與 small_tree$split 中的數值相同。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# The Gini-measure of the root node is given below
gini_root <- 2 * 89 / 500 * 411 / 500

# Compute the Gini measure for the left leaf node
gini_ll <-

# Compute the Gini measure for the right leaf node
gini_rl <-

# Compute the gain
gain <- gini_root - 446 / 500 * gini_ll - 54 / 500 * gini_rl

# compare the improve-column in small_tree$splits with our computed gain, multiplied by 500, and assure they are the same
small_tree$splits
improve <- gain * 500
編輯並執行程式碼