อัลกอริธึมการถดถอยแบบไปข้างหน้าคืออะไร?


14

อาจเป็นเพียงว่าฉันเหนื่อย แต่ฉันมีปัญหาในการพยายามทำความเข้าใจอัลกอริทึมการถดถอยของ Stagewise Forward จาก"องค์ประกอบของการเรียนรู้ทางสถิติ"หน้า 60:

Forward-stagewise regression (FS) ยิ่งมีข้อ จำกัด มากกว่าการถดถอยแบบขั้นตอนไปข้างหน้า มันเริ่มต้นจากการถดถอยแบบก้าวไปข้างหน้าโดยมีจุดตัดเท่ากับ [ค่าเฉลี่ยของ] y และตัวทำนายกึ่งกลางที่มี coe ffi cients ทั้งหมด 0 เริ่มแรก

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

นี่คืออัลกอริทึมหรือไม่:

b[1]=mean(y)
b[2..n]=0
r=(y-X*b)
index, maxCorr = max(transpose(r)*X)
while(abs(maxCorr) > someThreshold)
  b[index]=b[index]+regress(r,X[1..n][index])
  r=(y-X*b)
  index, maxCorr = max(transpose(r)*X)

โดยที่ b คือคอลัมน์เวกเตอร์ของสัมประสิทธิ์ X คือเมทริกซ์ของอินพุตและ y คือคอลัมน์เวกเตอร์ของเอาต์พุต Ie y = X * b + ข้อผิดพลาด

การถามเพราะอัลกอริทึมนี้ให้ฉันเพียงไม่กี่ค่าสัมประสิทธิ์ที่ไม่ใช่ศูนย์ในชุดข้อมูลที่ฉันกำลังทดสอบ (ด้วย threshold = .0001) และความแม่นยำในการทำนายไม่ดีเลย

คำตอบ:


5

ผู้เขียนทำหน้าที่อธิบายขั้นตอนวิธีในหนังสือได้ไม่ดี หากคุณดูสมการที่ 1.6 และ 1.7 ในกระดาษพวกมันจะชัดเจนขึ้น กระดาษมีสูตรที่แตกต่างกันเล็กน้อย (มันสร้างส่วนที่เหลือมากกว่าค่าสัมประสิทธิ์เวกเตอร์) แต่ประเด็นสำคัญก็คือว่ามันมาถึงสี่เหลี่ยมอย่างน้อยพอดีในขั้นตอนเล็ก ๆ น้อยมาก (นี่คือเหตุผลที่หนังสือกล่าวถึงอัลกอริทึมสามารถ "อีกมากมาย กว่าขั้นตอน p "เพื่อเสร็จสิ้น) คุณสามารถแทนที่ "regress (... )" ด้วยจำนวนน้อยหรือคุณสามารถคูณมันด้วยค่า 0.05 เล่นกับมันและดูว่าอะไรทำงาน

นอกจากนี้เกณฑ์ของคุณก็ดูเล็กน้อย r '* X จะให้ตัวเลขเป็นสัดส่วน แต่มีขนาดใหญ่กว่าสหสัมพันธ์จริง (เช่นข้อมูลเบาหวานในกระดาษสหสัมพันธ์จะอยู่ที่ ~ 70-900)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.