การใช้ 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]

--

--

รศ. ดร. เชฏฐเนติ ศรีสอ้าน
รศ. ดร. เชฏฐเนติ ศรีสอ้าน

Written by รศ. ดร. เชฏฐเนติ ศรีสอ้าน

รองอธิการบดีฝ่ายเทคโนโลยี มหาวิทยาลัยรังสิต

No responses yet