การใช้ Logistic Regression ทำนายการตอบรับเข้าศึกษาต่อปริญญาโท
กรณีที่ข้อมูลไม่ได้เป็นแบบต่อเนื่องแต่เป็นชนิดที่เรียกว่า หมวดหมู่ (Category) หรือที่เรียกอีกอย่างว่า (Qualitative data) รูปแบบการวิเคราะห์ Regression ก็สามารถนำมาวิเคราะห์ค่าไม่ต่อเนื่องได้เช่นกัน โดยใช้ Logistic Regresstion
Logistic Regresstion Analysis ถูกนำมาใช้เพื่อทำนายว่า จะเกิดเหตุการณ์หนึ่งขึ้นหรือไม่หรือมี โอกาสเกิดขึ้นมากน้อยเพียงใด โดยมีการกำหนดค่าตัวแปรตัวหนึ่งหรือหลายตัวที่คาดว่าจะส่งผลต่อการเกิดเหตุการณ์นั้น ๆ และในที่สุดก็จะทำให้เราเข้าใจสาเหตุการเกิดเหตุการณ์นั้น ๆได้ในที่สุด
เรานิยมใช้ Logistic Regression กับปัญหา Binary Classification ตัวอย่างเช่น ทำนาย target variable ที่มีสอง classes และใช้ค่า % accuracy สำหรับวัดผลโมเดลเบื้องต้น ด้านล่างเป็นตัวอย่าง use cases ในชีวิตจริง
1. Churn prediction — ทำนายว่าลูกค้าจะเลิกใช้บริการหรือเปล่า (yes/ no)
2. Repeated purchase prediction — ทำนายว่าลูกค้าจะกลับมาซื้อสินค้าหรือเปล่า (yes/ no)
3. Disease detection — ทำนายว่าจะเป็นโรคหรือเปล่า (yes/ no)
4. Spam classification — ทำนายว่าอีเมล์เป็น spam หรือเปล่า (yes/ no)
5. (Marketing) Conversion prediction — ทำนายว่า user จะ take action หรือเปล่า (yes/ no)
ในวันนี้ ทำนาย target variable ที่มีสอง classes [Admitted]/Rejected] ก็มีสองค่า คือ รับ[Admitted] (แทนด้วย 1) หรือ ไม่รับ [Rejected] (แทนด้วย 0) จากสถิติย้อนหลังของการตอบรับเข้าศึกษาต่อ โดยดูจาก ปัจจัยต่อไปนี้ คะแนนสอบ GMAT, เกรดเฉลี่ยสุดท้าย( ‘gpa’), ประสบการณ์ทำงาน (work_experience)
สรุป ตัวอย่างนี้ มีตัวแปรอิสระ 3 ตัวแปรคือ คะแนนสอบ GMAT, เกรดเฉลี่ยสุดท้าย( ‘gpa’), ประสบการณ์ทำงาน (work experience) และ ตัวแปรตาม (dependent variable) คือ รับ/ไม่รับ
ขั้นตอนที่ 1: อ่านสถิติย้อนหลังจาก ตาราง ‘MBA_Admission_History.csv’ ดังรูป
ขั้นตอนที่ 2: กำหนดให้ X คือ ตัวแปรตาม และ Y คือตัวแปริสระ ซี่งมี สามปัจจัย ทำการ แบ่งชุดข้อมูล ออกเป็นสองส่วน เพื่อป้องกันปัญหา Overfit แล้วทำการเทรน โมเดล ด้วย ฟังก์ชั้น fit ดังรูป
จากตาราง confusion matrix เราสามารถคำนวณ ความความแม่นยำ หรือ Accuracy ดังต่อไปนี้
· TP = True Positives = 4
· TN = True Negatives = 4
· FP = False Positives = 1
· FN = False Negatives = 1
Accuracy = (TP+TN)/Total = (4+4)/10 = 0.8
ซึ่งสามารถดูได้จาก ค่า Test data (X_Test) จำนวน 10 แถว ดังรูป
ซึ่งทำนายผิด สองครั้ง ในสิบครั้ง
ขั้นตอนที่ 3: ทำนายค่าที่ไม่เคยเจอมากก่อน สมมุติว่า มีผู้สมัครสามคน มาสมัคร ที่มีผลคะแนนและประสบการณ์ดังต่อไปนี้
ทำการสร้าง Data frame ใหม่ ชื่อ new_candidates
ผลการทำนาย คือ [0, 1, 1, 0, 1]