ฝึก Logistic Regression Model
เมื่อแบ่งชุดข้อมูลเป็น training set และ test set แล้ว ให้ฝึก logistic regression model กับ training set โดยใช้ฟังก์ชัน glm() ซึ่งเป็นเวอร์ชันขั้นสูงของ lm() ที่รองรับ regression model หลายประเภท ไม่ใช่แค่ ordinary least squares regression แบบพื้นฐาน
อย่าลืมระบุ argument family = "binomial" ใน glm() เพื่อบอกว่าต้องการทำ logistic regression (ไม่ใช่ linear regression) ตัวอย่างเช่น:
glm(Target ~ ., family = "binomial", dataset)
หากพบ warning เช่น glm.fit: algorithm did not converge หรือ glm.fit: fitted probabilities numerically 0 or 1 occurred ไม่ต้องกังวล เพราะ warning เหล่านี้พบบ่อยในชุดข้อมูลขนาดเล็ก และมักไม่ก่อให้เกิดปัญหาใดๆ โดยทั่วไปหมายความว่าชุดข้อมูลของคุณ แยกออกจากกันได้อย่างสมบูรณ์ (perfectly separable) ซึ่งอาจส่งผลต่อการคำนวณทางคณิตศาสตร์ของโมเดล แต่ฟังก์ชัน glm() ของ R มักจัดการกรณีนี้ได้โดยไม่มีปัญหา
เมื่อฝึกโมเดล glm() กับชุดข้อมูลแล้ว สามารถพยากรณ์ผลลัพธ์ (เช่น หิน หรือ กับระเบิด) บน test set ได้โดยใช้ฟังก์ชัน predict() พร้อม argument type = "response":
predict(my_model, test, type = "response")
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning ด้วย caret ใน R
คำแนะนำการฝึกหัด
- ฝึก logistic regression model ชื่อ
modelเพื่อพยากรณ์Classโดยใช้ตัวแปรอื่นทั้งหมดเป็น predictor ใช้ training set ของSonar - พยากรณ์บน
testset ด้วยโมเดลที่ฝึกไว้ แล้วเก็บผลลัพธ์ไว้ในตัวแปรpเหมือนเดิม
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Fit glm model: model
# Predict on test: p