Tạo dự đoán nhị phân
Trong bài trước, bạn đã dùng hàm glm() để xây dựng mô hình hồi quy logistic cho hành vi nhà tài trợ. Tương tự nhiều phương pháp Machine Learning trong R, bạn có thể áp dụng hàm predict() lên đối tượng mô hình để dự báo hành vi tương lai. Mặc định, predict() trả về dự đoán dưới dạng log odds trừ khi bạn chỉ định type = "response". Tùy chọn này sẽ chuyển log odds thành xác suất.
Vì mô hình hồi quy logistic ước lượng xác suất của kết quả, nên bạn cần quyết định ngưỡng xác suất nào sẽ dẫn đến hành động. Cần cân bằng giữa quá thận trọng và quá mạnh tay. Ví dụ, nếu bạn chỉ tiếp cận những người có xác suất quyên góp từ 99% trở lên, bạn có thể bỏ lỡ nhiều người có xác suất ước tính thấp hơn nhưng vẫn sẽ quyên góp. Cân bằng này đặc biệt quan trọng với các biến cố mất cân bằng nghiêm trọng, như trong bộ dữ liệu này khi việc quyên góp khá hiếm.
Bộ dữ liệu donors và mô hình donation_model đã sẵn sàng để bạn sử dụng.
Bài tập này là một phần của khóa học
Học có giám sát trong R: Phân loại
Hướng dẫn bài tập
- Dùng hàm
predict()để ước tính xác suất quyên góp của từng người. Sử dụng đối sốtypeđể lấy xác suất. Gán các dự đoán vào cột mới têndonation_prob. - Tìm xác suất thực tế mà một người trung bình sẽ quyên góp bằng cách truyền cho hàm
mean()cột phù hợp trong data framedonors. - Dùng
ifelse()để dự đoán một khoản quyên góp nếu xác suất quyên góp dự đoán của họ lớn hơn mức trung bình. Gán các dự đoán vào cột mới têndonation_pred. - Dùng hàm
mean()để tính độ chính xác của mô hình.
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.
# Estimate the donation probability
donors$donation_prob <- predict(___, type = "___")
# Find the donation probability of the average prospect
mean(___)
# Predict a donation if probability of donation is greater than average (0.0504)
donors$donation_pred <- ifelse(___ > 0.0504, ___, ___)
# Calculate the model's accuracy
mean(___ == ___)