Chọn biến tiếp theo tốt nhất
Phương pháp chọn biến tiến từng bước (forward stepwise) bắt đầu với tập biến rỗng và thực hiện theo từng bước; ở mỗi bước sẽ thêm biến tốt nhất tiếp theo. Để bạn triển khai quy trình này, đã có sẵn hai hàm tiện dụng.
Hàm auc tính AUC cho một tập biến variables nhất định của mô hình dùng tập biến này làm biến dự báo. Hàm next_best xác định biến nào nên được thêm vào tiếp theo vào danh sách biến.
Trong bài tập này, bạn sẽ thực hành với các hàm này để hiểu rõ hơn mục đích của chúng. Bạn sẽ tính AUC cho một tập biến cho trước, xác định biến nên thêm tiếp theo, và kiểm chứng rằng điều đó thật sự cho AUC tối ưu.
Bài tập này là một phần của khóa học
Nhập môn Phân tích Dự đoán với Python
Hướng dẫn bài tập
- Hàm
aucđã được cài sẵn cho bạn. Hãy tính AUC của mô hình dùng"max_gift","mean_gift"và"min_gift"làm biến dự báo. Bạn cần truyền các biến này trong một danh sách làm đối số thứ nhất cho hàmauc. - Hàm
next_bestđã được cài sẵn cho bạn. Hãy tính xem biến nào nên được thêm tiếp theo, giả sử"max_gift","mean_gift"và"min_gift"đang có trong mô hình, và"age"cùng"gender_F"là các biến dự báo ứng viên. Đối số thứ nhất của hàmnext_bestlà danh sách các biến hiện có, còn đối số thứ hai là danh sách các biến dự báo ứng viên. - Tính AUC của mô hình dùng
"max_gift","mean_gift","min_gift"và"age"làm biến dự báo. - Tính AUC của mô hình dùng
"max_gift","mean_gift","min_gift"và"gender_F"làm biến dự báo.
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.
# Calculate the AUC of a model that uses "max_gift", "mean_gift" and "min_gift" as predictors
auc_current = ____([____, ____, ____], ["target"], basetable)
print(round(auc_current,4))
# Calculate which variable among "age" and "gender_F" should be added to the variables "max_gift", "mean_gift" and "min_gift"
next_variable = ____([____, ____, ____], [____, ____], ["target"], basetable)
print(next_variable)
# Calculate the AUC of a model that uses "max_gift", "mean_gift", "min_gift" and "age" as predictors
auc_current_age = ____([____, ____, ____, ____], ["target"], basetable)
print(round(auc_current_age,4))
# Calculate the AUC of a model that uses "max_gift", "mean_gift", "min_gift" and "gender_F" as predictors
auc_current_gender_F = ____([____], ["target"], basetable)
print(round(auc_current_gender_F,4))