".. จำแนกปัญหาผ่านการถดถอย .. "โดย "การถดถอย" ฉันจะถือว่าคุณหมายถึงการถดถอยเชิงเส้นและฉันจะเปรียบเทียบวิธีการนี้กับวิธีการ "การจำแนก" ของการปรับรูปแบบการถดถอยโลจิสติก
ก่อนที่เราจะทำสิ่งนี้เป็นสิ่งสำคัญที่จะต้องชี้แจงความแตกต่างระหว่างรูปแบบการถดถอยและการจำแนกประเภท ตัวแบบการถดถอยทำนายตัวแปรอย่างต่อเนื่องเช่นปริมาณน้ำฝนหรือความเข้มของแสงแดด พวกเขายังสามารถทำนายความน่าจะเป็นเช่นความน่าจะเป็นที่ภาพมีแมวอยู่ แบบจำลองการถดถอยความน่าจะเป็นสามารถใช้เป็นส่วนหนึ่งของลักษณนามโดยกำหนดกฎการตัดสินใจตัวอย่างเช่นถ้าความน่าจะเป็น 50% หรือมากกว่าให้ตัดสินใจว่าเป็นแมว
การถดถอยโลจิสติกทำนายความน่าจะเป็นดังนั้นจึงเป็นขั้นตอนวิธีการถดถอย อย่างไรก็ตามมันถูกอธิบายโดยทั่วไปว่าเป็นวิธีการจัดหมวดหมู่ในวรรณคดีการเรียนรู้ของเครื่องเพราะมันสามารถ (และมักจะ) ใช้ในการทำลักษณนาม นอกจากนี้ยังมีอัลกอริธึมการจัดหมวดหมู่ "ของจริง" เช่น SVM ซึ่งทำนายผลและไม่ให้โอกาสเท่านั้น เราจะไม่พูดถึงอัลกอริทึมแบบนี้ที่นี่
การถดถอยเชิงเส้น vs. โลจิสติกส์เกี่ยวกับปัญหาการจำแนก
ดังที่ Andrew Ng อธิบายไว้ด้วยการถดถอยเชิงเส้นคุณพอดีกับพหุนามผ่านข้อมูล - พูดเช่นในตัวอย่างด้านล่างเราจะใส่เส้นตรงผ่านชุดตัวอย่าง{ขนาดเนื้องอกชนิดเนื้องอก}
ข้างต้นเนื้องอกมะเร็งได้รับและคนที่ไม่ใช่มะเร็งได้รับและสายสีเขียวคือสมมติฐานของเรา(x) ในการทำนายเราอาจบอกได้ว่าขนาดของเนื้องอกใด ๆ ที่กำหนดหากมีขนาดใหญ่กว่าเราจะคาดการณ์เนื้องอกที่ร้ายกาจ10h(x)xh(x)0.5
ดูเหมือนว่าวิธีนี้เราสามารถทำนายตัวอย่างชุดฝึกซ้อมได้อย่างถูกต้อง แต่ตอนนี้เรามาเปลี่ยนงานเล็กน้อย
โดยสังหรณ์ใจมันชัดเจนว่าเนื้องอกทั้งหมดมีขนาดใหญ่กว่าเกณฑ์บางอย่างที่เป็นมะเร็ง ลองเพิ่มตัวอย่างอีกอันที่มีขนาดก้อนโตมากและรันการถดถอยเชิงเส้นอีกครั้ง:
ตอนนี้เราไม่ทำงานอีกต่อไป เพื่อให้การคาดการณ์ถูกต้องเราจำเป็นต้องเปลี่ยนเป็นหรือบางอย่าง - แต่นั่นไม่ใช่วิธีที่อัลกอริทึมควรทำงานh(x)>0.5→malignanth(x)>0.2
เราไม่สามารถเปลี่ยนสมมติฐานได้ทุกครั้งที่มีตัวอย่างใหม่มาถึง แต่เราควรเรียนรู้จากข้อมูลชุดฝึกอบรมจากนั้น (โดยใช้สมมติฐานที่เราได้เรียนรู้) ทำการทำนายที่ถูกต้องสำหรับข้อมูลที่เราไม่เคยเห็นมาก่อน
หวังว่านี่จะอธิบายว่าทำไมการถดถอยเชิงเส้นไม่เหมาะที่สุดสำหรับปัญหาการจำแนกประเภท! นอกจากนี้คุณอาจต้องการดูVI การถดถอยโลจิสติก. วิดีโอการจำแนกประเภทในml-class.orgซึ่งจะอธิบายแนวคิดในรายละเอียดเพิ่มเติม
แก้ไข
ความน่าจะเป็นทางตรรกะถามว่าตัวจําแนกที่ดีจะทําอย่างไร ในตัวอย่างนี้คุณอาจใช้การถดถอยโลจิสติกซึ่งอาจเรียนรู้สมมติฐานเช่นนี้ (ฉันเพิ่งทำไป):
โปรดทราบว่าทั้งการถดถอยเชิงเส้นและการถดถอยโลจิสติกให้คุณเป็นเส้นตรง (หรือพหุนามคำสั่งที่สูงกว่า) แต่เส้นเหล่านั้นมีความหมายต่างกัน:
- h(x)สำหรับ interpolates การถดถอยเชิงเส้นหรือ extrapolates เอาท์พุทและคาดการณ์ค่าสำหรับเราไม่ได้เห็น มันเหมือนกับการเสียบใหม่และรับหมายเลขดิบและเหมาะสำหรับงานเช่นการคาดคะเนพูดว่าราคารถยนต์ขึ้นอยู่กับ{ขนาดรถยนต์อายุรถยนต์}ฯลฯxx
- h(x)สำหรับการถดถอยโลจิสติกจะบอกคุณถึงความน่าจะเป็นที่เป็นของคลาส "บวก" นี่คือเหตุผลที่มันถูกเรียกว่าอัลกอริธึมการถดถอย - ประมาณปริมาณอย่างต่อเนื่องความน่าจะเป็น อย่างไรก็ตามถ้าคุณตั้งค่าขีด จำกัด บนความน่าจะเป็นเช่นคุณจะได้ลักษณนามและในหลาย ๆ กรณีนี่คือสิ่งที่ทำกับเอาต์พุตจากรูปแบบการถดถอยโลจิสติก สิ่งนี้เทียบเท่ากับการวางบรรทัดลงบนพล็อต: ทุกจุดที่อยู่เหนือบรรทัดตัวแยกประเภทเป็นของหนึ่งคลาสxh(x)>0.5
ดังนั้นสิ่งที่สำคัญที่สุดคือในสถานการณ์การจำแนกประเภทเราใช้การใช้เหตุผลที่แตกต่างอย่างสิ้นเชิงและอัลกอริทึมที่แตกต่างอย่างสิ้นเชิงกว่าในสถานการณ์การถดถอย