การถดถอยเชิงเส้น / ลักษณนามสามารถ overfit อย่างแน่นอนถ้าใช้โดยไม่ต้องดูแลที่เหมาะสม
นี่คือตัวอย่างเล็ก ๆ ลองสร้างเวกเตอร์สองอันอันแรกคือแค่เหรียญสุ่มพลิก:5000
set.seed(154)
N <- 5000
y <- rbinom(N, 1, .5)
เวกเตอร์ที่สองคือการสังเกตแต่ละแบบสุ่มจะถูกสุ่มเข้าเรียนหนึ่งในคลาส:5000500
N.classes <- 500
rand.class <- factor(sample(1:N.classes, N, replace=TRUE))
ควรจะมีความสัมพันธ์ระหว่างพลิกของเราy
และการเรียนการสุ่มของเราrand.class
พวกเขาได้รับการพิจารณาอิสระอย่างสมบูรณ์
แต่ถ้าเราพยายามทำนายการพลิกแบบสุ่มกับคลาสแบบสุ่มโดยใช้การถดถอยแบบลอจิสติก (ลักษณนามเชิงเส้น) แน่นอนว่าคิดว่ามีความสัมพันธ์
M <- glm(y ~ rand.class, family="binomial")
hist(coef(M), breaks=50)
มูลค่าที่แท้จริงของสัมประสิทธิ์เหล่านี้ทุกตัวเป็นศูนย์ แต่อย่างที่คุณเห็นเราค่อนข้างแพร่กระจาย ลักษณนามเชิงเส้นนี้มีความเหมาะสมมากเกินไป
หมายเหตุ: สุดขั้วใน histogram นี้ที่ค่าสัมประสิทธิ์ได้เดินไปและเป็นกรณีที่มีชั้นเรียนทั้งไม่มีข้อสังเกตที่มีค่าหรือไม่มี ค่าประมาณที่เกิดขึ้นจริงสำหรับค่าสัมประสิทธิ์เหล่านี้เป็นบวกและลบอินฟินิตี้ แต่ขั้นตอนวิธีการถดถอยโลจิสติกเป็นรหัสอย่างหนักกับผูกพันของ15- 1515y == 1
y == 0
15
"overfitting" ดูเหมือนจะไม่ได้รับการกำหนดอย่างเป็นทางการ ทำไมถึงเป็นอย่างนั้น?
การ overfitting อาจจะเข้าใจได้ดีที่สุดในบริบทของคลาสโมเดลที่มีพารามิเตอร์ความซับซ้อน ในกรณีนี้แบบจำลองอาจกล่าวได้ว่าเกินความคาดหมายเมื่อลดความซับซ้อนลงเล็กน้อยส่งผลให้คาดการณ์ประสิทธิภาพตัวอย่างได้ดีขึ้น
มันจะเป็นเรื่องยากมากที่จะกำหนดแนวคิดในรูปแบบที่เป็นอิสระ รูปแบบเดียวพอดีคุณต้องการบางสิ่งบางอย่างเพื่อเปรียบเทียบกับมันเพื่อให้พอดีหรือต่ำกว่า ในตัวอย่างของฉันด้านบนการเปรียบเทียบนี้มาพร้อมกับความจริง แต่คุณมักไม่รู้ความจริงดังนั้นแบบจำลอง!
การวัดระยะทางระหว่างการฝึกซ้อมและชุดทดสอบจะไม่อนุญาตให้ทำในรูปแบบดังกล่าวหรือไม่
มีแนวคิดดังกล่าวเรียกว่าการมองโลกในแง่ดี มันถูกกำหนดโดย:
ω = Eทดสอบ- Eรถไฟ
โดยที่หมายถึงข้อผิดพลาดและแต่ละเทอมจะมีค่าเฉลี่ยสำหรับชุดฝึกอบรมและการทดสอบที่เป็นไปได้ทั้งหมดสำหรับอัลกอริทึมการเรียนรู้E
มันไม่ได้ค่อนข้างได้รับในสาระสำคัญของ overfitting แต่เนื่องจากผลการดำเนินงานในชุดทดสอบสามารถค่อนข้างบิตเลวร้ายยิ่งกว่ารถไฟแม้ว่ารูปแบบของความซับซ้อนสูงลดลงทั้ง