การทำนายแบบ Binary
ในแบบฝึกหัดก่อนหน้า คุณได้ใช้ฟังก์ชัน glm() เพื่อสร้างโมเดล logistic regression สำหรับพฤติกรรมของผู้บริจาค เช่นเดียวกับวิธี machine learning อื่น ๆ ใน R คุณสามารถใช้ฟังก์ชัน predict() กับออบเจ็กต์โมเดลเพื่อพยากรณ์พฤติกรรมในอนาคตได้ โดยค่าเริ่มต้น predict() จะแสดงผลลัพธ์ในรูปแบบ log odds เว้นแต่จะระบุ type = "response" ซึ่งจะแปลง log odds เป็น ค่าความน่าจะเป็น
เนื่องจากโมเดล logistic regression ประมาณ ความน่าจะเป็น ของผลลัพธ์ คุณจึงต้องกำหนดเกณฑ์ที่เหมาะสมสำหรับการตัดสินใจดำเนินการ ต้องหาจุดสมดุลระหว่างความระมัดระวังมากเกินไปกับความเชิงรุกมากเกินไป ตัวอย่างเช่น หากติดต่อเฉพาะผู้ที่มีความน่าจะเป็นในการบริจาค 99% ขึ้นไป ก็อาจพลาดผู้ที่มีความน่าจะเป็นต่ำกว่าแต่ยังคงบริจาคอยู่ ความสมดุลนี้สำคัญอย่างยิ่งในกรณีที่ผลลัพธ์ไม่สมดุลอย่างมาก เช่น ในชุดข้อมูลนี้ที่การบริจาคเกิดขึ้นค่อนข้างน้อย
ชุดข้อมูล donors และโมเดล donation_model พร้อมให้ใช้งานแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Supervised Learning in R: Classification
คำแนะนำการฝึกหัด
- ใช้ฟังก์ชัน
predict()เพื่อประมาณความน่าจะเป็นในการบริจาคของแต่ละคน โดยใช้อาร์กิวเมนต์typeเพื่อให้ได้ค่าความน่าจะเป็น แล้วกำหนดผลการพยากรณ์ไปยังคอลัมน์ใหม่ชื่อdonation_prob - หาความน่าจะเป็นจริงที่คนทั่วไปจะบริจาค โดยส่งคอลัมน์ที่เหมาะสมของ data frame
donorsให้กับฟังก์ชันmean() - ใช้
ifelse()เพื่อทำนายการบริจาค เมื่อความน่าจะเป็นในการบริจาคที่คาดการณ์ไว้สูงกว่าค่าเฉลี่ย แล้วกำหนดผลการพยากรณ์ไปยังคอลัมน์ใหม่ชื่อdonation_pred - ใช้ฟังก์ชัน
mean()เพื่อคำนวณความแม่นยำของโมเดล
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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(___ == ___)