Menghitung gain untuk sebuah tree
Dalam video, Anda melihat bagaimana ukuran Gini digunakan untuk membuat pemisahan (split) yang ideal pada sebuah tree. Sekarang, Anda akan menghitung gain untuk tree yang sudah dimuat di ruang kerja Anda.
Himpunan data berisi 500 kasus, 89 di antaranya adalah gagal bayar. Ini menghasilkan nilai Gini sebesar 0,292632 pada node akar (root). Sebagai pengingat singkat, ingat bahwa Gini pada suatu node = 2 * proporsi gagal bayar pada node tersebut * proporsi tidak gagal bayar pada node tersebut. Lihat kode berikut untuk penyegaran.
gini_root <- 2 * (89 / 500) * (411 / 500)
Anda akan menggunakan nilai Gini ini untuk membantu menghitung gain dari node daun terhadap node akar. Lihat kode berikut untuk mendapatkan gambaran bagaimana Anda dapat menggunakan ukuran Gini yang dibuat untuk menghitung gain suatu node.
Gain = gini_root - (prop(cases left leaf) * gini_left) - (prop(cases right leaf * gini_right))
Hitung Gini pada node kiri dan node kanan, serta gain dari kedua node daun tersebut terhadap node akar. Objek yang memuat tree adalah small_tree.
Latihan ini adalah bagian dari kursus
Pemodelan Risiko Kredit di R
Petunjuk latihan
- Perhitungan Gini untuk node akar sudah diberikan.
- Hitung ukuran Gini untuk node daun sebelah kiri.
- Hitung ukuran Gini untuk node daun sebelah kanan.
- Hitung gain dengan mengambil selisih antara Gini node akar dan ukuran Gini node daun berbobot.
- Informasi mengenai split pada tree ini dapat ditemukan menggunakan
$splitpada objek tree,small_tree. Alih-alih gain, Anda perlu melihat kolomimprovedi sini.improveadalah metrik alternatif untuk gain, yang diperoleh dengan mengalikan gain dengan jumlah kasus dalam himpunan data. Pastikan bahwa objekimprove(kode diberikan) memiliki nilai yang sama seperti padasmall_tree$split.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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