หลายๆ ปัญหาต้องการค่าประมาณความน่าจะเป็นที่เป็นเอาต์พุต การถดถอยแบบโลจิสติกส์คือ กลไกที่มีประสิทธิภาพมากในการคำนวณความน่าจะเป็น ในทางปฏิบัติ คุณจะใช้ความน่าจะเป็นที่ได้จากการส่งกลับในเกณฑ์ใดหัวข้อหนึ่งต่อไปนี้ มี 2 วิธี ได้แก่
ใช้ "ตามที่เป็น" ตัวอย่างเช่น ถ้าโมเดลการคาดคะเนสแปมใช้อีเมลเป็น ป้อนค่า
0.932
และแสดงความน่าจะเป็น93.2%
อีเมลดังกล่าวเป็นจดหมายขยะแปลงเป็นหมวดหมู่ไบนารีแล้ว เช่น
True
หรือFalse
,Spam
หรือNot Spam
โมดูลนี้มุ่งเน้นที่การใช้เอาต์พุตโมเดลการถดถอยแบบโลจิสติกตามที่มีอยู่ ใน โมดูลการแยกประเภท คุณจะได้เรียนรู้วิธีการ แปลงเอาต์พุตนี้เป็นหมวดหมู่ไบนารี
ฟังก์ชันซิกมอยด์
คุณอาจสงสัยว่าโมเดลการถดถอยแบบโลจิสติกส์สามารถตรวจสอบผลที่ได้ แสดงถึงความน่าจะเป็น โดยจะแสดงค่าระหว่าง 0 ถึง 1 เสมอ ตามที่เห็น จะมีฟังก์ชันส่วนหนึ่งที่เรียกว่าฟังก์ชันโลจิสติก ซึ่งเอาต์พุตจะมีลักษณะเดียวกันนี้ ฟังก์ชันโลจิสติกมาตรฐาน หรือที่เรียกว่า ฟังก์ชัน sigmoid (sigmoid แปลว่า "รูปตัว s") มีแอตทริบิวต์ สูตร:
\[f(x) = \frac{1}{1 + e^{-x}}\]
รูปที่ 1 แสดงกราฟที่สอดคล้องกันของฟังก์ชัน sigmoid
![เส้นโค้งซิกมอยด์ (รูปตัว S) ที่พล็อตบนระนาบพิกัดคาร์ทีเซียน
ซึ่งมีศูนย์กลางอยู่ที่ต้นทาง](https://developers.google.cn/static/machine-learning/crash-course/logistic-regression/images/sigmoid_function_with_axes.png?authuser=7&hl=th)
เมื่ออินพุต x
เพิ่มขึ้น เอาต์พุตของฟังก์ชัน Sigmoid จะเข้าใกล้
แต่ไม่เคยถึง 1
ในทำนองเดียวกัน เมื่ออินพุตลดลง Sigmoid
ได้เอาต์พุตของฟังก์ชันแล้ว แต่ไม่ถึง 0
คลิกที่นี่เพื่อดูรายละเอียดคณิตศาสตร์ เบื้องหลังฟังก์ชัน Sigmoid
ตารางด้านล่างแสดงค่าเอาต์พุตของฟังก์ชัน sigmoid สำหรับ ค่าที่ป้อนในช่วง –7 ถึง 7 บันทึกว่าซิกมอยด์ใกล้จะถึง 0 สำหรับการลดค่าอินพุตติดลบและความเร็วที่ซิกมอยด์เข้าใกล้ 1 สำหรับการเพิ่มค่าอินพุตเชิงบวก
อย่างไรก็ตาม ไม่ว่าค่าอินพุตจะใหญ่หรือเล็กเพียงใด เอาต์พุตจะ ต้องมากกว่า 0 และน้อยกว่า 1 เสมอ
อินพุต | เอาต์พุต Sigmoid |
---|---|
-7 | 0.001 |
-6 | 0.002 |
-5 | 0.007 |
-4 | 0.018 |
-3 | 0.047 |
-2 | 0.119 |
-1 | 0.269 |
0 | 0.50 |
1 | 0.731 |
2 | 0.881 |
3 | 0.952 |
4 | 0.982 |
5 | 0.993 |
6 | 0.997 |
7 | 0.999 |
การแปลงเอาต์พุตเชิงเส้นโดยใช้ฟังก์ชัน Sigmoid
สมการต่อไปนี้แสดงส่วนประกอบเชิงเส้นของโลจิสติกส์ โมเดลการถดถอย:
\[z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N\]
โดยมี
- z คือเอาต์พุตของสมการเชิงเส้น หรือที่เรียกกันว่า โอกาสในการบันทึก
- b คือความเอนเอียง
- ค่า w คือน้ำหนักที่โมเดลเรียนรู้แล้ว
- ค่า x คือค่าฟีเจอร์สำหรับตัวอย่างที่เฉพาะเจาะจง
ในการรับการคาดการณ์การถดถอยแบบโลจิสติก ระบบจะส่งค่า z ไปยัง ฟังก์ชันซิกมอยด์ จะแสดงค่า (ความน่าจะเป็น) ระหว่าง 0 ถึง 1 ดังนี้
\[y' = \frac{1}{1 + e^{-z}}\]
โดยมี
- y' คือเอาต์พุตของโมเดลการถดถอยแบบโลจิสติก
- z คือเอาต์พุตเชิงเส้น (ตามที่คำนวณในสมการก่อนหน้า)
คลิกที่นี่เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับ อัตราต่อรองจากลอการิทึม
ในสมการ $z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N$, z จะเรียกว่า log-odds เพราะหากคุณเริ่มต้นด้วย ฟังก์ชัน sigmoid ต่อไปนี้ (โดยที่ $y$ คือเอาต์พุตของโลจิสติก โมเดลการถดถอยซึ่งแสดงความน่าจะเป็น):
$$y = \frac{1}{1 + e^{-z}}$$
แล้วแก้โจทย์ด้วย z
$$ z = \log\left(\frac{y}{1-y}\right) $$
จากนั้น z หมายถึงบันทึกของอัตราส่วนของความน่าจะเป็น ของผลลัพธ์ที่เป็นไปได้ 2 รายการ ได้แก่ y และ 1 – y
รูปที่ 2 แสดงให้เห็นว่าเอาต์พุตเชิงเส้นเปลี่ยนเป็นการถดถอยแบบโลจิสติกได้อย่างไร เอาต์พุตโดยใช้การคำนวณเหล่านี้
![ซ้าย: เส้นที่มีจุด (-7.5, –10), (-2.5, 0) และ (0, 5)
ไฮไลต์ไว้ ขวา: เส้นโค้งซิกมอยด์ที่มีการเปลี่ยนรูปแบบที่สอดคล้องกัน
จุด (-10, 0.00004), (0, 0.5) และ (5, 0.9933)](https://developers.google.cn/static/machine-learning/crash-course/logistic-regression/images/linear_to_logistic.png?authuser=7&hl=th)
ในรูปที่ 2 สมการเชิงเส้นกลายเป็นอินพุตไปยังฟังก์ชันซิกมอยด์ ซึ่งจะบิดเส้นตรงให้เป็นรูปตัว S โปรดสังเกตว่าสมการเชิงเส้น จะแสดงค่า z ที่มีขนาดใหญ่หรือเล็กมากได้ แต่เอาต์พุตของ sigmoid y' จะอยู่ระหว่าง 0 ถึง 1 เสมอ ตัวอย่างเช่น ฟิลด์ สี่เหลี่ยมผืนผ้าบนกราฟทางซ้ายมีค่า z เป็น -10 แต่ฟังก์ชัน sigmoid ในกราฟ กราฟด้านขวาที่แมป -10 เป็น y' เป็น 0.00004
แบบฝึกหัด: ตรวจสอบความเข้าใจ
โมเดลการถดถอยแบบโลจิสติกส์ที่มี 3 ฟีเจอร์มีความลำเอียงและ น้ำหนัก:
\[\begin{align} b &= 1 \\ w_1 &= 2 \\ w_2 &= -1 \\ w_3 &= 5 \end{align} \]
ได้มาจากค่าอินพุตต่อไปนี้
\[\begin{align} x_1 &= 0 \\ x_2 &= 10 \\ x_3 &= 2 \end{align} \]
ตอบคำถาม 2 ข้อต่อไปนี้
ตามที่คำนวณในข้อ 1 ข้างต้น โอกาสในบันทึกสำหรับค่าอินพุตคือ 1 การเสียบค่า z นั้นเข้ากับฟังก์ชัน sigmoid
\(y = \frac{1}{1 + e^{-z}} = \frac{1}{1 + e^{-1}} = \frac{1}{1 + 0.367} = \frac{1}{1.367} = 0.731\)