ข้อมูลเบื้องต้นเกี่ยวกับเส้นโค้งการถดถอยแบบปรับตัวหลายตัวแปร
เมื่อความสัมพันธ์ระหว่างชุดของตัวแปรทำนายและ ตัวแปรการตอบสนอง เป็นแบบเส้นตรง เรามักจะใช้ การถดถอยเชิงเส้น ซึ่ง ถือว่าความสัมพันธ์ระหว่างตัวแปรทำนายที่กำหนดและตัวแปรตอบสนองจะอยู่ในรูปแบบ:
Y = β 0 + β 1 X + ε
แต่ในทางปฏิบัติ ความสัมพันธ์ระหว่างตัวแปรจริง ๆ แล้วอาจไม่เป็นเชิงเส้น และการพยายามใช้การถดถอยเชิงเส้นอาจส่งผลให้แบบจำลองมีความเหมาะสมไม่ดี
วิธีหนึ่งในการอธิบายความสัมพันธ์แบบไม่เชิงเส้นระหว่างตัวทำนายและตัวแปรตอบสนองคือการใช้ การถดถอยพหุนาม ซึ่งอยู่ในรูปแบบ:
Y = β 0 + β 1 X + β 2 X 2 + … + β ชั่วโมง
ในสมการนี้ h เรียกว่า “ดีกรี” ของพหุนาม เมื่อเราเพิ่มค่าของ h โมเดลจะมีความยืดหยุ่นมากขึ้นและสามารถปรับให้เข้ากับข้อมูลที่ไม่ใช่เชิงเส้นได้
อย่างไรก็ตาม การถดถอยพหุนามมีข้อเสียบางประการ:
1. การถดถอยพหุนามสามารถทำให้ชุดข้อมูลพอดีกับชุดข้อมูล มากเกินไป หากเลือกระดับ h มากเกินไป ในทางปฏิบัติ h แทบจะไม่มากกว่า 3 หรือ 4 เพราะหลังจากจุดนั้นไปแล้ว h จะสอดคล้องกับสัญญาณรบกวนของชุดการฝึก และไม่ได้สรุปข้อมูลทั่วไปกับข้อมูลที่มองไม่เห็นได้ดีนัก
2. การถดถอยพหุนามกำหนดให้มีฟังก์ชันโกลบอลกับชุดข้อมูลทั้งหมด ซึ่งไม่ได้แม่นยำเสมอไป
อีกทางเลือกหนึ่งนอกเหนือจากการถดถอยพหุนามคือ เส้นตรงการถดถอยแบบปรับตัวหลายตัวแปร
แนวคิดพื้นฐาน
เส้นโค้งการถดถอยแบบปรับตัวได้หลายตัวแปรทำงานดังนี้:
1. แบ่งชุดข้อมูลออกเป็น k ชิ้น
ขั้นแรก เราแบ่งชุดข้อมูลออกเป็น k องค์ประกอบที่แตกต่างกัน จุดที่เราแบ่งชุดข้อมูลเรียกว่า โหนด
เราระบุโหนดโดยการประเมินแต่ละจุดสำหรับตัวทำนายแต่ละตัวว่าเป็นโหนดที่มีศักยภาพ และสร้างแบบจำลองการถดถอยเชิงเส้นโดยใช้คุณลักษณะที่เป็นตัวเลือก จุดที่สามารถลดข้อผิดพลาดในโมเดลได้มากที่สุดคือโหนด
เมื่อเราระบุโหนดแรกแล้ว เราจะทำซ้ำเพื่อค้นหาโหนดเพิ่มเติม คุณสามารถค้นหาโหนดได้มากเท่าที่คุณคิดว่าสมเหตุสมผลในการเริ่มต้น
2. ติดตั้งฟังก์ชันการถดถอยให้กับแต่ละส่วนเพื่อสร้างฟังก์ชันบานพับ
เมื่อเราเลือกโหนดและปรับโมเดลการถดถอยให้เหมาะกับแต่ละองค์ประกอบในชุดข้อมูล เราจะได้สิ่งที่เรียกว่า ฟังก์ชันบานพับ ซึ่งแสดงโดย h(xa) โดยที่ a คือค่าเกณฑ์ขั้นต่ำ
ตัวอย่างเช่น ฟังก์ชันบานพับสำหรับโมเดลโหนดเดียวอาจเป็น:
- y = β 0 + β 1 (4.3 – x) ถ้า x < 4.3
- y = β 0 + β 1 (x – 4.3) ถ้า x > 4.3
ในกรณีนี้ ถูกกำหนดว่าการเลือก 4.3 เป็นค่าขีดจำกัดทำให้สามารถลดข้อผิดพลาดสูงสุดระหว่างค่าขีดจำกัดที่เป็นไปได้ทั้งหมด จากนั้นเราจะปรับโมเดลการถดถอยที่แตกต่างกันให้มีค่าต่ำกว่า 4.3 เทียบกับค่าที่สูงกว่า 4.3
ฟังก์ชันบานพับที่มีสองโหนดสามารถเป็นดังนี้:
- y = β 0 + β 1 (4.3 – x) ถ้า x < 4.3
- y = β 0 + β 1 (x – 4.3) ถ้า x > 4.3 & x < 6.7
- y = β 0 + β 1 (6.7 – x) ถ้า x > 6.7
ในกรณีนี้ มีการพิจารณาว่าการเลือก 4.3 และ 6.7 เป็นค่าเกณฑ์ทำให้สามารถลดข้อผิดพลาดสูงสุดในบรรดาค่าเกณฑ์ที่เป็นไปได้ทั้งหมด จากนั้นเราจะปรับโมเดลการถดถอยหนึ่งตัวให้มีค่าต่ำกว่า 4.3, โมเดลการถดถอยอีกตัวหนึ่งให้มีค่าระหว่าง 4.3 ถึง 6.7 และโมเดลการถดถอยอีกตัวหนึ่งให้มีค่าสูงกว่า 4.3
3. เลือก k ตามการตรวจสอบข้าม k-fold
ท้ายที่สุด เมื่อเราติดตั้งโมเดลที่แตกต่างกันหลายรุ่นโดยใช้จำนวนโหนดที่แตกต่างกันสำหรับแต่ละรุ่น เราก็สามารถทำการ ตรวจสอบความถูกต้องข้าม k-fold เพื่อระบุแบบจำลองที่ทำให้เกิดค่าความคลาดเคลื่อนกำลังสองเฉลี่ยในการทดสอบต่ำที่สุด (MSE)
โมเดลที่มีการทดสอบ MSE ต่ำที่สุดจะถูกเลือกให้เป็นโมเดลที่สามารถสรุปข้อมูลใหม่ได้ดีที่สุด
ข้อดีและข้อเสีย
เส้นโค้งการถดถอยแบบปรับตัวหลายตัวแปรมีข้อดีและข้อเสียดังต่อไปนี้:
ข้อดี :
- สามารถใช้ได้ทั้งกับ ปัญหาการถดถอยและการจำแนกประเภท
- ซึ่งทำงานได้ดีกับชุดข้อมูลขนาดใหญ่
- มันมีการคำนวณที่รวดเร็ว
- สิ่งนี้ไม่ต้องการให้คุณสร้างมาตรฐานให้กับตัวแปรทำนาย
ข้อเสีย:
- มันมีแนวโน้มที่จะไม่ทำงานเช่นเดียวกับวิธีการที่ไม่ใช่เชิงเส้น เช่น Random Forests และเครื่องเพิ่มความลาดชัน
วิธีใส่โมเดล MARS ใน R & Python
บทช่วยสอนต่อไปนี้ให้ตัวอย่างทีละขั้นตอนของวิธีปรับ Splines การถดถอยแบบปรับตัวหลายตัวแปร (MARS) ใน R และ Python:
Splines การถดถอยแบบอะแดปทีฟหลายตัวแปรใน R
Splines การถดถอยแบบอะแดปทีฟหลายตัวแปรใน Python