1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Mô hình hóa rủi ro tín dụng bằng R

Connected

Bài tập

Tính toán gain cho một cây

Trong video, bạn đã xem cách dùng độ đo Gini để tạo phép chia (split) tối ưu cho một cây. Bây giờ, bạn sẽ tính gain cho cây đã được nạp trong không gian làm việc của bạn.

Tập dữ liệu có 500 quan sát, trong đó 89 là các trường hợp vỡ nợ. Điều này dẫn đến Gini bằng 0.292632 ở nút gốc. Nhắc lại nhanh: Gini của một nút = 2 * tỷ lệ vỡ nợ tại nút đó * tỷ lệ không vỡ nợ tại nút đó. Xem đoạn mã dưới đây để ôn lại.

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

Bạn sẽ dùng các giá trị Gini này để tính gain của các lá so với nút gốc. Xem đoạn mã sau để hình dung cách dùng các giá trị Gini đã tạo để tính gain của một nút.

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

Hãy tính Gini ở nút con bên trái và nút con bên phải, và tính gain của hai nút lá này so với nút gốc. Đối tượng chứa cây là small_tree.

Hướng dẫn

100 XP
  • Phép tính Gini cho nút gốc đã được cung cấp.
  • Tính độ đo Gini cho nút lá bên trái.
  • Tính độ đo Gini cho nút lá bên phải.
  • Tính gain bằng cách lấy hiệu giữa Gini của nút gốc và tổng có trọng số các Gini của nút lá.
  • Thông tin về phép chia trong cây này có thể tìm bằng $split từ đối tượng cây small_tree. Ở đây, thay vì xem gain, bạn nên xem cột improve. improve là một thước đo thay thế cho gain, thu được đơn giản bằng cách nhân gain với số quan sát trong tập dữ liệu. Hãy đảm bảo đối tượng improve (mã đã cho) có cùng giá trị như trong small_tree$split.