Satu pohon terakhir dengan lebih banyak opsi
Dalam latihan ini, Anda akan menggunakan beberapa argumen terakhir yang dibahas di video. Beberapa spesifikasi dalam fungsi rpart.control() akan diubah, dan beberapa bobot akan disertakan menggunakan argumen weights di rpart(). Vektor case_weights telah dibuat untuk Anda dan sudah dimuat di ruang kerja Anda. Vektor ini berisi bobot 1 untuk non-default pada himpunan data pelatihan, dan bobot 3 untuk default pada himpunan data pelatihan. Dengan menetapkan bobot lebih tinggi untuk default, model akan memberikan prioritas lebih tinggi untuk mengklasifikasikan default secara benar.
Latihan ini adalah bagian dari kursus
Pemodelan Risiko Kredit di R
Petunjuk latihan
- Tetapkan seed sebesar 345.
- Lengkapi kode yang disediakan dengan meneruskan
case_weightske argumenweightsdari `rpart(). - Ubah jumlah minimum percabangan yang diperbolehkan pada sebuah node menjadi 5, dan jumlah minimum observasi yang diperbolehkan pada node daun menjadi 2 dengan menggunakan argumen
minsplitdanminbucketmasing-masing dirpart.control. - Gunakan fungsi plotcp() untuk meneliti di mana laju galat tervalidasi-silang dapat diminimalkan.
- Gunakan
which.min()untuk mengidentifikasi baris dengan"xerror"minimum ditree_weights$cp. Simpan hasilnya keindex. - Gunakan kode yang disediakan untuk memilih
cpdengan galat tervalidasi-silang minimum - Pangkas pohon menggunakan parameter kompleksitas pada titik laju galat tervalidasi-silang minimum. Simpan pohon yang telah dipangkas ke
ptree_weights. - Plot pohon yang telah dipangkas menggunakan fungsi
prp(). Sertakan argumen keduaextradan setel nilainya menjadi 1.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# set a seed and run the code to obtain a tree using weights, minsplit and minbucket
set.seed(345)
tree_weights <- rpart(loan_status ~ ., method = "class",
data = training_set,
control = rpart.control(minsplit = ___, minbucket = ___, cp = 0.001))
# Plot the cross-validated error rate for a changing cp
# Create an index for of the row with the minimum xerror
index <- which.min(___$___[ , "xerror"])
# Create tree_min
tree_min <- tree_weights$cp[index, "CP"]
# Prune the tree using tree_min
# Plot the pruned tree using the rpart.plot()-package