Logistic regression เป็นโมเดลสำหรับการจำแนกแบบทวิภาค มันรวมฟีเจอร์อินพุตให้เป็นคะแนนเชิงเส้น ส่งคะแนนนั้นผ่านฟังก์ชันซิกมอยด์ และให้ผลลัพธ์เป็นตัวเลขระหว่าง และ ซึ่งภายใต้โมเดลที่ฟิตแล้ว สามารถตีความได้ว่าเป็นค่าประมาณความน่าจะเป็นของคลาสบวก
แม้ชื่อจะมีคำว่า regression แต่ logistic regression มักใช้เพื่อตัดสินใจระหว่างสองคลาส เช่น ผ่าน/ไม่ผ่าน สแปม/ไม่ใช่สแปม หรือผิดนัดชำระ/ไม่ผิดนัดชำระ คำว่า "regression" ในที่นี้หมายถึงสูตรเชิงเส้นภายในโมเดล ไม่ได้หมายถึงการทำนายผลลัพธ์ต่อเนื่อง
สูตรของ logistic regression แบบสรุป
Binary logistic regression ใช้
โดยมีฟังก์ชันซิกมอยด์เป็น
ส่วนเชิงเส้น สามารถเป็นจำนวนจริงใดก็ได้ แต่ซิกมอยด์จะบีบค่านั้นให้อยู่ในช่วง จึงทำให้ผลลัพธ์สามารถใช้เป็นค่าประมาณความน่าจะเป็นได้
ทำไมฟังก์ชันซิกมอยด์จึงสำคัญ
ถ้าคุณใช้คะแนนเชิงเส้นดิบ เป็นความน่าจะเป็นโดยตรง คุณอาจได้ค่าที่เป็นไปไม่ได้ เช่น หรือ ฟังก์ชันซิกมอยด์แก้ปัญหานี้โดยแมปคะแนนลบมาก ๆ ให้เข้าใกล้ คะแนนบวกมาก ๆ ให้เข้าใกล้ และคะแนนใกล้ ให้เข้าใกล้
จึงตีความได้ในทางปฏิบัติว่า
- ถ้า ติดลบมาก โมเดลเอนเอียงไปทางคลาส
- ถ้า ใกล้ โมเดลยังไม่แน่ใจ
- ถ้า เป็นบวกมาก โมเดลเอนเอียงไปทางคลาส
กราฟจะชันที่สุดใกล้ ดังนั้นการเปลี่ยนแปลงเล็กน้อยของคะแนนอาจทำให้ความน่าจะเป็นเปลี่ยนมากเมื่ออยู่ใกล้ แต่จะเปลี่ยนน้อยกว่ามากเมื่อความน่าจะเป็นเข้าใกล้ หรือ อยู่แล้ว
ตัวอย่าง logistic regression แบบคำนวณจริง
สมมติว่าโมเดลใช้ฟีเจอร์เดียวคือ และมี
คุณอาจมองว่า คือคะแนนสอบ และ หมายถึง "ผ่าน" ค่าสัมประสิทธิ์ในที่นี้เป็นเพียงตัวอย่างเพื่อแสดงกลไกการทำงาน
ถ้า จะได้ว่า
ดังนั้นความน่าจะเป็นที่ทำนายได้คือ
ถ้า จะได้ว่า
และ
ดังนั้นโมเดลเดียวกันนี้ให้โอกาสผ่านประมาณ เมื่อ และประมาณ เมื่อ คะแนนเพิ่มขึ้น แต่ผลลัพธ์สุดท้ายยังคงอยู่ระหว่าง และ เพราะซิกมอยด์ดัดผลลัพธ์ให้เป็นความน่าจะเป็น
ถ้าคุณเลือก threshold เป็น กรณีแรกจะถูกจัดเป็นคลาส และกรณีที่สองเป็นคลาส ขั้นตอนสุดท้ายนี้ขึ้นอยู่กับ threshold ส่วนค่าประมาณความน่าจะเป็นนั้นไม่ได้ขึ้นอยู่กับ threshold
ทางลัดที่มีประโยชน์อย่างหนึ่งคือ ถ้าใช้ threshold ที่ คลาสจะเปลี่ยนพอดีเมื่อ เพราะ
logistic regression กลายเป็นตัวจำแนกได้อย่างไร
ผลลัพธ์ของโมเดลคือค่าประมาณความน่าจะเป็น ส่วนกฎการจำแนกจะถูกเพิ่มเข้ามาภายหลัง
ตัวอย่างเช่น เมื่อใช้ threshold :
- ทำนายเป็นคลาส ถ้า
- ทำนายเป็นคลาส ถ้า
แต่ ไม่ใช่ threshold ที่ถูกต้องเสมอไป ถ้าต้นทุนของ false positive และ false negative ต่างกัน หรือถ้าคลาสไม่สมดุลกันมาก threshold อื่นอาจทำงานได้ดีกว่า
ค่าสัมประสิทธิ์หมายถึงอะไร
เครื่องหมายของค่าสัมประสิทธิ์บอกทิศทางของผลกระทบต่อคะแนนเชิงเส้น :
- ถ้า การเพิ่ม จะทำให้ สูงขึ้น และมีแนวโน้มทำให้ เพิ่มขึ้น
- ถ้า การเพิ่ม จะทำให้ ลดลง และมีแนวโน้มทำให้ ลดลง
ส่วนนี้ตรงไปตรงมา แต่จุดที่ละเอียดกว่าคือ ความน่าจะเป็นไม่ได้เปลี่ยนแบบเชิงเส้นตามฟีเจอร์ เพราะกราฟของซิกมอยด์ไม่ใช่เส้นตรง
ใน logistic regression มาตรฐาน โมเดลเชิงเส้นจะอยู่บนสเกล log-odds:
นั่นหมายความว่า เมื่อคงฟีเจอร์อื่นไว้คงที่ การเพิ่มฟีเจอร์หนึ่งหน่วยจะทำให้ log-odds เปลี่ยนแบบเชิงเส้น ซึ่งแม่นยำกว่าการพูดว่ามันทำให้ความน่าจะเป็นเปลี่ยนไปด้วยจำนวนคงที่
ข้อผิดพลาดที่พบบ่อยใน logistic regression
มองผลลัพธ์ว่าเป็นคลาสที่แน่นอน
การทำนายอย่าง ไม่ได้แปลว่าเหตุการณ์นั้นจะเกิดขึ้นแน่นอน แต่มันหมายความว่าโมเดลให้ค่าประมาณความน่าจะเป็นของคลาสบวกสำหรับอินพุตนั้นประมาณ
คิดว่า threshold ต้องเป็น
ค่า เป็นค่าที่ใช้บ่อย แต่เป็นทางเลือก ไม่ใช่กฎตายตัว threshold ที่ดีที่สุดขึ้นอยู่กับการใช้งาน
คิดว่าความน่าจะเป็นเปลี่ยนแบบเชิงเส้น
คะแนน เป็นเชิงเส้นในอินพุต แต่ความน่าจะเป็นไม่เป็นเชิงเส้น การเปลี่ยนฟีเจอร์หนึ่งหน่วยอาจมีผลต่างกันเมื่ออยู่ใกล้ เทียบกับเมื่ออยู่ใกล้
ลืมว่าโมเดลพื้นฐานเป็นแบบทวิภาค เว้นแต่จะขยายต่อ
Logistic regression แบบพื้นฐานรองรับสองคลาส เวอร์ชันหลายคลาสมีอยู่จริง แต่เป็นส่วนขยาย ไม่ใช่การตั้งค่าแบบทวิภาคเดียวกันที่เขียนต่างออกไป
logistic regression ใช้เมื่อไร
Logistic regression มักใช้เมื่อเป้าหมายเป็นแบบใช่/ไม่ใช่ เช่น การตรวจจับสแปม การมีอยู่ของโรค การเลิกใช้บริการของลูกค้า การผิดนัดชำระหนี้ หรือผลลัพธ์แบบผ่าน/ไม่ผ่าน
มันยังคงได้รับความนิยมเพราะเรียบง่าย รวดเร็ว และตีความได้พอสมควร โดยเฉพาะเมื่อคุณต้องการตัวจำแนกพื้นฐาน ชุดข้อมูลไม่ได้ใหญ่มาก หรือคุณต้องการค่าประมาณความน่าจะเป็น ไม่ใช่แค่ป้ายกำกับแบบตายตัว
วิธีนึกภาพแบบง่าย ๆ
ลองคิดว่า logistic regression เป็นเครื่องจักรสองขั้นตอน:
- รวมหลักฐานด้วยคะแนนเชิงเส้น
- แปลงคะแนนนั้นเป็นความน่าจะเป็นด้วยซิกมอยด์
ภาพนี้เพียงพอสำหรับการเข้าใจตัวอย่างเบื้องต้นส่วนใหญ่ และช่วยให้เห็นว่าทำไม logistic regression จึงอยู่กึ่งกลางระหว่างโมเดลเชิงเส้นกับงานจำแนกประเภท
ลองทำโจทย์ logistic regression ที่คล้ายกัน
เลือกคะแนนง่าย ๆ เช่น
คำนวณ สำหรับค่า หลายค่า เช่น , และ สังเกตว่าคะแนนเชิงเส้นเปลี่ยนอย่างสม่ำเสมอ ในขณะที่ความน่าจะเป็นโค้งไปตามกราฟรูปตัว S จากนั้นลองใช้ threshold อื่น แล้วดูว่าคลาสที่ทำนายเปลี่ยนเมื่อใด
ต้องการความช่วยเหลือในการแก้โจทย์?
อัปโหลดคำถามของคุณแล้วรับคำตอบแบบทีละขั้นตอนที่ผ่านการตรวจสอบในไม่กี่วินาที
เปิด GPAI Solver →