รู้เบื้องต้นเกี่ยวกับการถดถอยแบบ lasso


ใน การถดถอยเชิงเส้นพหุคูณ แบบธรรมดา เราใช้ชุดของตัวแปรทำนาย p และ ตัวแปรตอบสนอง เพื่อให้พอดีกับแบบจำลองของรูปแบบ:

Y = β 0 + β 1 X 1 + β 2 X 2 + … + β p

ทอง:

  • Y : ตัวแปรตอบสนอง
  • X j : ตัวแปร ทำนายที่ j
  • β j : ผลกระทบโดยเฉลี่ยต่อ Y ของการเพิ่มขึ้นของ X j หนึ่งหน่วย โดยคงตัวทำนายอื่นๆ ทั้งหมดไว้คงที่
  • ε : เงื่อนไขข้อผิดพลาด

ค่าของ β 0 , β 1 , B 2 , …, β p ถูกเลือกโดยใช้ วิธีกำลังสองน้อยที่สุด ซึ่งจะลดผลรวมของกำลังสองของส่วนที่เหลือ (RSS):

RSS = Σ(ฉัน ฉัน – ŷ ฉัน ) 2

ทอง:

  • Σ : สัญลักษณ์กรีกหมายถึง ผลรวม
  • y i : ค่าตอบสนองจริงสำหรับการสังเกต ครั้งที่ 3
  • ŷ i : ค่าตอบสนองที่คาดการณ์ไว้ตามแบบจำลองการถดถอยเชิงเส้นพหุคูณ

อย่างไรก็ตาม เมื่อตัวแปรทำนายมีความสัมพันธ์กันสูง ความเป็นหลายคอลลิเนียร์ อาจกลายเป็นปัญหาได้ ซึ่งอาจทำให้การประมาณค่าสัมประสิทธิ์แบบจำลองไม่น่าเชื่อถือและแสดงความแปรปรวนสูง กล่าวคือ เมื่อนำแบบจำลองไปใช้กับชุดข้อมูลใหม่ที่ไม่เคยเห็นมาก่อน ก็มีแนวโน้มว่าจะทำงานได้ไม่ดี

วิธีหนึ่งในการแก้ไขปัญหานี้คือการใช้วิธีการที่เรียกว่า Lasso Regression ซึ่งพยายามลดสิ่งต่อไปนี้ให้เหลือน้อยที่สุด:

RSS + ΣΣ|β j |

โดยที่ j ไปจาก 1 ถึง p และ แล ≥ 0

เทอมที่สองในสมการนี้เรียกว่า การลงโทษการถอน

เมื่อ แล = 0 เงื่อนไขการลงโทษนี้ไม่มีผลใดๆ และการถดถอยแบบ Lasso จะให้ค่าประมาณค่าสัมประสิทธิ์เท่ากับกำลังสองน้อยที่สุด

อย่างไรก็ตาม เมื่อ แล เข้าใกล้อนันต์ การลงโทษการลบออกจะมีอิทธิพลมากขึ้น และตัวแปรทำนายที่ไม่สามารถนำเข้าลงในโมเดลได้จะลดลงเหลือศูนย์ และบางส่วนก็ถูกลบออกจากโมเดลด้วยซ้ำ

เหตุใดจึงใช้การถดถอยแบบ Lasso

ข้อดีของการถดถอยแบบบ่วงบาศเหนือการถดถอยกำลังสองน้อยที่สุดคือ การแลกเปลี่ยนความแปรปรวนอคติ

โปรดจำไว้ว่า Mean Square Error (MSE) เป็นหน่วยเมตริกที่เราสามารถใช้เพื่อวัดความแม่นยำของแบบจำลองที่กำหนด และมีการคำนวณดังนี้

MSE = วาร์( f̂( x 0 )) + [อคติ( f̂( x 0 ))] 2 + วาร์(ε)

MSE = ความแปรปรวน + อคติ 2 + ข้อผิดพลาดที่ลดไม่ได้

แนวคิดพื้นฐานของการถดถอยแบบบ่วงบาศคือการแนะนำอคติเล็กน้อยเพื่อลดความแปรปรวนลงอย่างมาก ส่งผลให้ MSE โดยรวมลดลง

เพื่ออธิบายสิ่งนี้ ให้พิจารณากราฟต่อไปนี้:

การแลกเปลี่ยนการถดถอยแบบอคติ-ความแปรปรวนของริดจ์

โปรดทราบว่าเมื่อ แล เพิ่มขึ้น ความแปรปรวนจะลดลงอย่างมีนัยสำคัญโดยมีอคติเพิ่มขึ้นเล็กน้อย อย่างไรก็ตาม เมื่อเกินจุดใดจุดหนึ่ง ความแปรปรวนจะลดลงอย่างรวดเร็วน้อยลง และการลดลงของค่าสัมประสิทธิ์นำไปสู่การประเมินค่าเหล่านี้ต่ำเกินไปอย่างมีนัยสำคัญ ซึ่งนำไปสู่การเพิ่มขึ้นอย่างมากในอคติ

จากกราฟเราจะเห็นได้ว่า MSE ของการทดสอบนั้นต่ำที่สุด เมื่อเราเลือกค่าสำหรับ γ ที่สร้างการแลกเปลี่ยนที่เหมาะสมที่สุดระหว่างอคติและความแปรปรวน

เมื่อ แล = 0 เงื่อนไขการลงโทษในการถดถอยแบบบ่วงบาศจะไม่มีผลใดๆ ดังนั้นจึงให้ค่าประมาณค่าสัมประสิทธิ์เดียวกันกับกำลังสองน้อยที่สุด อย่างไรก็ตาม การเพิ่ม แล ถึงจุดหนึ่งจะทำให้ค่า MSE โดยรวมของการทดสอบลดลงได้

การถดถอยแบบ Lasso Bias-Variance Tradeoff

ซึ่งหมายความว่าการปรับโมเดลให้เหมาะสมด้วยการถดถอยแบบบ่วงบาศจะทำให้เกิดข้อผิดพลาดในการทดสอบน้อยกว่าการปรับโมเดลให้เหมาะสมด้วยการถดถอยกำลังสองน้อยที่สุด

การถดถอยแบบ Lasso เทียบกับการถดถอยแบบ Ridge

Lasso regression และ Ridge regression รู้จักกันในชื่อ วิธีการทำให้เป็นมาตรฐาน เนื่องจากทั้งสองพยายามลดผลรวมที่เหลือของกำลังสอง (RSS) ให้เหลือน้อยที่สุด รวมถึงการลงโทษด้วย

กล่าวอีกนัยหนึ่ง พวกมันจำกัดหรือทำให้การประมาณค่าสัมประสิทธิ์แบบจำลอง เป็นปกติ

อย่างไรก็ตาม เงื่อนไขการลงโทษที่พวกเขาใช้แตกต่างกันเล็กน้อย:

  • การถดถอยแบบ Lasso พยายามย่อ ขนาด RSS + ΣΣ|β j | ให้เหลือน้อยที่สุด
  • การถดถอยแบบริดจ์พยายามย่อ ขนาด RSS + ΣΣβ j 2 ให้เหลือน้อยที่สุด

เมื่อเราใช้การถดถอยแบบสัน ค่าสัมประสิทธิ์ของตัวทำนายแต่ละตัวจะลดลงเหลือศูนย์ แต่ไม่มีตัวใดที่สามารถไป ถึงศูนย์ได้อย่างสมบูรณ์

ในทางกลับกัน เมื่อเราใช้การถดถอยแบบบ่วงบาศ อาจเป็นไปได้ที่สัมประสิทธิ์บางส่วนจะกลาย เป็นศูนย์โดยสมบูรณ์ เมื่อ แล มีขนาดใหญ่เพียงพอ

ในแง่เทคนิค การถดถอยแบบบ่วงบาศสามารถสร้างแบบจำลอง “กระจัดกระจาย” ซึ่งก็คือแบบจำลองที่มีเฉพาะตัวแปรตัวทำนายเพียงชุดย่อยเท่านั้น

สิ่งนี้ทำให้เกิดคำถาม: การถดถอยแบบสันหรือการถดถอยแบบบ่วงบาศดีกว่าหรือไม่

คำตอบ: มันขึ้นอยู่กับ!

ในกรณีที่ตัวแปรทำนายจำนวนเล็กน้อยมีความสำคัญ การถดถอยแบบเชือกมีแนวโน้มที่จะทำงานได้ดีขึ้น เนื่องจากสามารถลดตัวแปรที่ไม่มีนัยสำคัญให้เหลือศูนย์และลบตัวแปรเหล่านั้นออกจากแบบจำลองได้

อย่างไรก็ตาม เมื่อตัวแปรทำนายจำนวนมากมีนัยสำคัญในแบบจำลองและค่าสัมประสิทธิ์ของตัวแปรมีค่าเท่ากันโดยประมาณ การถดถอยแบบสันมีแนวโน้มที่จะทำงานได้ดีขึ้น เนื่องจากจะเก็บตัวทำนายทั้งหมดไว้ในแบบจำลอง

เพื่อพิจารณาว่าโมเดลใดมีประสิทธิภาพมากที่สุดในการคาดการณ์ เราทำการ ตรวจสอบความถูกต้องข้าม k-fold ไม่ว่ารุ่นใดจะทำให้เกิดค่าคลาดเคลื่อนกำลังสองเฉลี่ยต่ำสุด (MSE) ก็เป็นรุ่นที่ดีที่สุดที่จะใช้

ขั้นตอนในการถดถอยแบบบ่วงบาศในทางปฏิบัติ

ขั้นตอนต่อไปนี้สามารถใช้เพื่อดำเนินการถดถอยแบบบ่วงบาศ:

ขั้นตอนที่ 1: คำนวณเมทริกซ์สหสัมพันธ์และค่า VIF สำหรับตัวแปรทำนาย

ขั้นแรก เราต้องสร้าง เมทริกซ์สหสัมพันธ์ และคำนวณ ค่า VIF (ปัจจัยอัตราเงินเฟ้อแปรปรวน) สำหรับตัวแปรทำนายแต่ละตัว

หากเราตรวจพบความสัมพันธ์ที่ชัดเจนระหว่างตัวแปรทำนายและค่า VIF สูง (ข้อความบางข้อความกำหนดค่า VIF “สูง” เป็น 5 ในขณะที่ข้อความอื่นใช้ 10) การถดถอยแบบ Lasso อาจเหมาะสม

อย่างไรก็ตาม หากข้อมูลไม่มีหลายคอลลิเนียริตี้ ก็อาจไม่จำเป็นต้องทำการถดถอยแบบบ่วงบาศตั้งแต่แรก แต่เราสามารถใช้การถดถอยกำลังสองน้อยที่สุดแบบธรรมดาแทนได้

ขั้นตอนที่ 2: ปรับโมเดลการถดถอยแบบ Lasso และเลือกค่าสำหรับ แล

เมื่อเราพิจารณาแล้วว่าการถดถอยแบบบ่วงบาศมีความเหมาะสม เราก็จะสามารถปรับโมเดลให้เหมาะสมได้ (โดยใช้ภาษาการเขียนโปรแกรมยอดนิยม เช่น R หรือ Python) โดยใช้ค่าที่เหมาะสมที่สุดสำหรับ แล

เพื่อกำหนดค่าที่เหมาะสมที่สุดสำหรับ แล เราสามารถใส่โมเดลหลาย ๆ แบบโดยใช้ค่าที่แตกต่างกันสำหรับ แลม และเลือก แล เป็นค่าที่สร้างการทดสอบ MSE ที่ต่ำที่สุด

ขั้นตอนที่ 3: เปรียบเทียบการถดถอยแบบบ่วงบาศกับการถดถอยแบบสันและการถดถอยกำลังสองน้อยที่สุดสามัญ

สุดท้ายนี้ เราสามารถเปรียบเทียบแบบจำลองการถดถอยแบบบ่วงบาศกับแบบจำลองการถดถอยแบบสันและแบบจำลองการถดถอยกำลังสองน้อยที่สุดเพื่อพิจารณาว่าแบบจำลองใดที่สร้างการทดสอบ MSE ต่ำสุดโดยใช้การตรวจสอบความถูกต้องข้ามแบบ k-fold

ขึ้นอยู่กับความสัมพันธ์ระหว่างตัวแปรทำนายและตัวแปรตอบสนอง มีความเป็นไปได้โดยสิ้นเชิงว่าหนึ่งในสามโมเดลนี้จะมีประสิทธิภาพเหนือกว่าโมเดลอื่นๆ ในสถานการณ์ที่แตกต่างกัน

การถดถอยแบบ Lasso ใน R & Python

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการถดถอยแบบ Lasso ใน R และ Python:

Lasso Regression ใน R (ทีละขั้นตอน)
Lasso Regression ใน Python (ทีละขั้นตอน)

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *