Membuat prediksi biner
Pada latihan sebelumnya, Anda menggunakan fungsi glm() untuk membangun model regresi logistik terhadap perilaku donor. Seperti banyak metode Machine Learning di R, Anda dapat menerapkan fungsi predict() pada objek model untuk memprakirakan perilaku di masa mendatang. Secara bawaan, predict() menghasilkan prediksi dalam bentuk log odds kecuali jika type = "response" ditentukan. Ini mengonversi log odds menjadi probabilitas.
Karena model regresi logistik mengestimasi probabilitas dari keluaran, Andalah yang menentukan ambang di mana probabilitas tersebut menyiratkan tindakan. Harus ada keseimbangan antara terlalu berhati-hati dan terlalu agresif. Misalnya, jika Anda hanya menghubungi orang-orang dengan probabilitas donasi 99% atau lebih, Anda mungkin melewatkan banyak orang dengan probabilitas perkiraan lebih rendah yang tetap memilih untuk berdonasi. Keseimbangan ini sangat penting dipertimbangkan untuk keluaran yang sangat tidak seimbang, seperti pada himpunan data ini di mana donasi relatif jarang.
Himpunan data donors dan model donation_model tersedia untuk Anda gunakan.
Latihan ini adalah bagian dari kursus
Supervised Learning di R: Klasifikasi
Petunjuk latihan
- Gunakan fungsi
predict()untuk mengestimasi probabilitas donasi setiap orang. Gunakan argumentypeuntuk memperoleh probabilitas. Simpan prediksi ke kolom baru bernamadonation_prob. - Temukan probabilitas aktual bahwa seseorang rata-rata akan berdonasi dengan memberikan fungsi
mean()kolom yang sesuai dari data framedonors. - Gunakan
ifelse()untuk memprediksi donasi jika probabilitas donasi yang diprediksi lebih besar daripada rata-rata. Simpan prediksi ke kolom baru bernamadonation_pred. - Gunakan fungsi
mean()untuk menghitung akurasi model.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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(___ == ___)