Cây cuối cùng với nhiều tùy chọn hơn
Trong bài tập này, bạn sẽ dùng một số đối số cuối cùng đã được đề cập trong video. Một vài thiết lập trong hàm rpart.control() sẽ được thay đổi, và sẽ thêm trọng số bằng đối số weights trong rpart(). Vector case_weights đã được tạo sẵn cho bạn và nạp vào môi trường làm việc. Vector này chứa trọng số bằng 1 cho các quan sát không vỡ nợ trong tập huấn luyện, và trọng số bằng 3 cho các quan sát vỡ nợ trong tập huấn luyện. Bằng cách đặt trọng số cao hơn cho vỡ nợ, mô hình sẽ coi trọng hơn việc phân loại đúng các trường hợp vỡ nợ.
Bài tập này là một phần của khóa học
Mô hình hóa rủi ro tín dụng bằng R
Hướng dẫn bài tập
- Đặt seed bằng 345.
- Bổ sung vào đoạn mã cho sẵn bằng cách truyền
case_weightsvào đối sốweightscủarpart(). - Thay đổi số lần chia tối thiểu được phép tại một nút thành 5, và số lượng quan sát tối thiểu ở các lá thành 2 bằng các đối số
minsplitvàminbuckettrongrpart.controltương ứng. - Dùng hàm plotcp() để xem nơi nào có thể tối thiểu hóa tỷ lệ lỗi cross-validated.
- Dùng
which.min()để xác định dòng có"xerror"nhỏ nhất trongtree_weights$cp. Gán kết quả choindex. - Dùng mã cho sẵn để chọn
cptại đó lỗi cross-validated được tối thiểu hóa - Cắt tỉa (prune) cây bằng tham số độ phức tạp tại điểm tỷ lệ lỗi cross-validated được tối thiểu hóa. Lưu cây đã cắt tỉa vào
ptree_weights. - Vẽ cây đã cắt tỉa bằng hàm
prp(). Thêm đối số thứ haiextravà đặt bằng 1.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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