ฉันเข้าใจความหมายของ "การ overfitting" แต่ฉันต้องการความช่วยเหลือในการหาตัวอย่างจริงในโลกที่ใช้กับการ overfitting
ฉันเข้าใจความหมายของ "การ overfitting" แต่ฉันต้องการความช่วยเหลือในการหาตัวอย่างจริงในโลกที่ใช้กับการ overfitting
คำตอบ:
นี่เป็นตัวอย่างที่ดีของแบบจำลองชุดการเลือกตั้งประธานาธิบดีจาก xkcd:
มีการเลือกตั้งประธานาธิบดีเพียง 56 ครั้งและประธานาธิบดี 43 คน นั่นไม่ใช่ข้อมูลจำนวนมากที่ต้องเรียนรู้ เมื่อพื้นที่การคาดการณ์ขยายรวมถึงสิ่งต่าง ๆ เช่นมีฟันปลอมและค่า Scrabble point ของชื่อมันเป็นเรื่องง่ายมากที่รุ่นจะไม่ต้องปรับคุณสมบัติทั่วไปของข้อมูล (สัญญาณ) และเริ่มจับคู่เสียงรบกวน เมื่อสิ่งนี้เกิดขึ้นความพอดีกับข้อมูลในอดีตอาจดีขึ้น แต่โมเดลจะล้มเหลวอย่างน่าสังเวชเมื่อใช้เพื่ออ้างถึงการเลือกตั้งประธานาธิบดีในอนาคต
สิ่งที่ฉันชอบคือตัวอย่าง Matlab ของประชากรในสหรัฐกับเวลา:
(อย่างน้อยฉันก็หวังเป็นอย่างยิ่งว่านี่คือตัวอย่างของการมีลูกมากเกินไป)
http://www.mathworks.com/help/curvefit/examples/polynomial-curve-fitting.html#zmw57dd0e115
การศึกษาของเฉินและคณะ (2013) เหมาะกับสอง cubics กับความไม่ต่อเนื่องที่คาดหวังในชีวิตเป็นหน้าที่ของละติจูด
Chen Y. , Ebenstein, A. , Greenstone, M. , และ Li, H. 2013. หลักฐานเกี่ยวกับผลกระทบของการสัมผัสกับมลพิษทางอากาศอย่างต่อเนื่องเกี่ยวกับอายุขัยของนโยบายแม่น้ำห้วยจีน กิจการของ National Academy of Sciences 110: 12936–12941 บทคัดย่อ
แม้จะมีการตีพิมพ์ในวารสารที่โดดเด่น ฯลฯ แต่การรับรองโดยนัยของคนที่มีชื่อเสียง ฯลฯ ฉันก็ยังคงนำเสนอสิ่งนี้เป็นตัวอย่างเบื้องต้นของการปรับตัวให้กระชับ
สัญญาณบอกเล่าเรื่องราวคือความไม่น่าเชื่อของคิวบิก การติดตั้งลูกบาศก์โดยปริยายถือว่ามีเหตุผลบางอย่างว่าทำไมอายุขัยจะแปรเปลี่ยนเป็นพหุนามระดับสามของละติจูดที่คุณอาศัยอยู่ ดูเหมือนจะเป็นไปไม่ได้: มันไม่ง่ายเลยที่จะจินตนาการถึงกลไกทางกายภาพที่น่าเชื่อถือซึ่งจะทำให้เกิดผลกระทบดังกล่าว
ดูเพิ่มเติมการโพสต์ติดตามบล็อกสำหรับการวิเคราะห์รายละเอียดเพิ่มเติมของบทความนี้: หลักฐานเกี่ยวกับผลกระทบของการใช้งานอย่างต่อเนื่องของการถดถอยพหุนามในการอนุมานสาเหตุ (การเรียกร้องที่ร้อนถ่านหินลดอายุการใช้งาน 5 ปีสำหรับครึ่งพันล้านคน)
ในบทความวิทยาศาสตร์วันที่ 14 มีนาคม 2014 , David Lazer, Ryan Kennedy, Gary King และ Alessandro Vespignani ได้ระบุปัญหาในGoogle แนวโน้มไข้หวัดใหญ่ที่พวกเขาอ้างถึงการบรรจุมากเกินไป
นี่คือวิธีที่พวกเขาบอกเล่าเรื่องราวรวมถึงการอธิบายถึงลักษณะของการ overfitting และสาเหตุที่ทำให้อัลกอริทึมล้มเหลว:
ในเดือนกุมภาพันธ์ 2013, ... ธรรมชาติรายงานว่า GFT คาดการณ์มากกว่าสองเท่าของสัดส่วนการเข้าชมแพทย์สำหรับการเจ็บป่วยเหมือนไข้หวัดใหญ่ (ILI) มากกว่าศูนย์ควบคุมและป้องกันโรค (CDC) ... สิ่งนี้เกิดขึ้นแม้จะมีการสร้าง GFT ขึ้นเพื่อคาดการณ์รายงาน CDC ...
โดยพื้นฐานแล้ววิธีการคือการค้นหาสิ่งที่ตรงกันที่สุดในบรรดา 50 ล้านคำค้นหาเพื่อให้พอดีกับจุดข้อมูล 1152 โอกาสในการค้นหาข้อความค้นหาที่ตรงกับความชอบของไข้หวัดใหญ่ แต่ไม่เกี่ยวข้องกับโครงสร้างดังนั้นจึงไม่สามารถทำนายอนาคตได้ค่อนข้างสูง ในความเป็นจริงนักพัฒนา GFT รายงานว่ากำจัดคำค้นหาตามฤดูกาลที่ไม่เกี่ยวข้องกับไข้หวัดใหญ่ แต่มีความสัมพันธ์อย่างมากกับข้อมูล CDC เช่นที่เกี่ยวข้องกับบาสเก็ตบอลระดับมัธยมปลาย สิ่งนี้ควรเป็นคำเตือนว่าข้อมูลขนาดใหญ่มีจำนวนคดีมากเกินไปซึ่งเป็นเรื่องมาตรฐานในการวิเคราะห์ข้อมูล วิธีการเฉพาะกิจนี้ในการสลัดคำค้นหาที่แปลกประหลาดล้มเหลวเมื่อ GFT พลาดการระบาดของไข้หวัดใหญ่ A-H1N1 ที่ไม่ใช่ฤดูกาล 2009 อย่างสมบูรณ์
[เน้นเพิ่มแล้ว]
ฉันเห็นภาพนี้เมื่อสองสามสัปดาห์ก่อนและคิดว่ามันค่อนข้างเกี่ยวข้องกับคำถามในมือ
แทนที่จะเรียงลำดับแบบเชิงเส้นให้เหมาะสมมันจึงมีพหุนามควอร์ติคซึ่งมีขนาดพอดี แต่ทำให้ได้คำตอบที่ไร้สาระอย่างชัดเจน
สำหรับฉันตัวอย่างที่ดีที่สุดคือระบบ Ptolemaicในดาราศาสตร์ ปโตเลมีสันนิษฐานว่าโลกเป็นศูนย์กลางของจักรวาลและสร้างระบบที่ซับซ้อนของวงโคจรแบบวงกลมซ้อนกันซึ่งจะอธิบายการเคลื่อนที่ของวัตถุบนท้องฟ้าได้ดี นักดาราศาสตร์ต้องเพิ่มวงกลมเพื่ออธิบายการเบี่ยงเบนจนกระทั่งวันหนึ่งมันก็สับสนจนผู้คนเริ่มสงสัย นั่นคือเมื่อโคเปอร์นิคัสสร้างแบบจำลองที่สมจริงยิ่งขึ้น
นี่คือตัวอย่างที่ดีที่สุดของการ overfitting ให้ฉัน คุณไม่สามารถปรับกระบวนการสร้างข้อมูล (DGP) ให้พอดีกับข้อมูลได้ คุณสามารถใส่แบบจำลองที่ไม่ได้รับอนุญาตมากเกินไปได้เท่านั้น โมเดลเกือบทั้งหมดของเราในสังคมศาสตร์นั้นได้รับการสะกดผิดดังนั้นกุญแจสำคัญคือการจดจำสิ่งนี้และทำให้พวกเขาจดจำ ไม่พยายามจับทุกแง่มุมของชุดข้อมูล แต่พยายามที่จะจับคุณสมบัติที่สำคัญผ่านการทำให้เข้าใจง่าย
สมมติว่าคุณมี 100 จุดบนกราฟ
คุณสามารถพูดได้ว่า: อืมฉันต้องการทำนายสิ่งต่อไป
ที่นี่คุณสามารถดูภาพประกอบที่เรียบง่ายสำหรับตัวอย่างนี้:
ลำดับพหุนามยิ่งสูงก็จะพอดีกับจุดที่มีอยู่
อย่างไรก็ตามพหุนามคำสั่งที่สูงถึงแม้จะดูเหมือนจะเป็นนางแบบที่ดีกว่าสำหรับจุดเหล่านี้ มันจำลองเสียงรบกวนมากกว่าการกระจายข้อมูลที่แท้จริง
ดังนั้นหากคุณเพิ่มจุดใหม่ลงในกราฟด้วยเส้นโค้งที่เหมาะสมอย่างสมบูรณ์มันอาจจะอยู่ห่างจากเส้นโค้งมากกว่าถ้าคุณใช้พหุนามลำดับต่ำที่ง่ายกว่า
การวิเคราะห์ที่อาจมีส่วนทำให้เกิดภัยพิบัติฟูกูชิม่าเป็นตัวอย่างของการล้น มีความสัมพันธ์ที่รู้จักกันดีในวิทยาศาสตร์โลกที่อธิบายถึงความน่าจะเป็นของการเกิดแผ่นดินไหวในขนาดที่กำหนดเนื่องจากความถี่ที่สังเกตได้ของการเกิดแผ่นดินไหว "น้อยกว่า" คือ สิ่งนี้เป็นที่รู้จักกันในนามความสัมพันธ์ของกูเทนแบร์ก - ริกเตอร์และมีการบันทึกข้อมูลแบบเส้นตรงในช่วงหลายทศวรรษที่ผ่านมา การวิเคราะห์ความเสี่ยงจากแผ่นดินไหวในบริเวณใกล้เคียงของเครื่องปฏิกรณ์ (แผนภาพนี้จากหนังสือ "สัญญาณและเสียงรบกวน" ที่ยอดเยี่ยมของเนทซิลเวอร์) แสดง "kink" ในข้อมูล การเพิกเฉยต่อความหงิกงอนำไปสู่การประมาณความเสี่ยงรายปีของแผ่นดินไหวขนาด 9 ประมาณ 1 ใน 300 - เป็นสิ่งที่ต้องเตรียม อย่างไรก็ตาม (ตามที่เห็นได้ชัดในระหว่างการประเมินความเสี่ยงเริ่มต้นสำหรับเครื่องปฏิกรณ์) ลดการทำนายความเสี่ยงเป็น 1 ใน 13,000 ปี หนึ่งไม่สามารถทำผิดวิศวกรที่ไม่ได้ออกแบบเครื่องปฏิกรณ์ที่จะทนต่อเหตุการณ์ที่ไม่น่าเป็นไปได้ - แต่อย่างใดอย่างหนึ่งควรผิดนักสถิติที่ overfitted (แล้วประเมิน) ข้อมูล ...
"อ๊ะ! แพทออกจาก บริษัท เราจะไปหาคนมาแทนได้อย่างไร"
การโพสต์งาน:
ต้องการ: วิศวกรไฟฟ้า บุคคลอายุ 42 ปีสำเร็จการศึกษาระดับปริญญาตรีสาขาวิศวกรรมไฟฟ้าคณิตศาสตร์และการเลี้ยงสัตว์ จะต้องมีความสูง 68 นิ้วที่มีผมสีน้ำตาลตุ่นเหนือตาซ้ายและมีแนวโน้มที่จะ diatribes ยืดยาวกับห่านและการใช้คำผิด 'คำแนะนำ'
ในแง่คณิตศาสตร์การ overfittingมักหมายถึงการสร้างแบบจำลองที่มีพารามิเตอร์มากกว่าที่จำเป็นทำให้เหมาะสมสำหรับชุดข้อมูลที่เฉพาะเจาะจงมากขึ้น แต่ไม่มีการจับรายละเอียดที่เกี่ยวข้องจำเป็นต้องพอดีกับชุดข้อมูลอื่น ๆ จากชั้นเรียนที่สนใจ
ในตัวอย่างข้างต้นผู้โพสต์ไม่สามารถแยกความแตกต่างที่เกี่ยวข้องจากลักษณะที่ไม่เกี่ยวข้อง คุณสมบัติที่เป็นไปได้มักจะพบโดยคนคนเดียวที่พวกเขารู้แล้วว่าเหมาะสมกับงาน (แต่ไม่ต้องการอีกต่อไป)
อันนี้ทำขึ้น แต่ฉันหวังว่ามันจะแสดงให้เห็นถึงกรณี
ตัวอย่างที่ 1
set.seed(123)
k <- 100
data <- replicate(k, rnorm(100))
colnames(data) <- make.names(1:k)
data <- as.data.frame(data)
ทีนี้มาลองถดถอยเชิงเส้นตรงกัน:
fit <- lm(X1 ~ ., data=data)
และนี่คือบทสรุปสำหรับผู้ทำนายสิบคนแรก:
> summary(fit)
Call:
lm(formula = X1 ~ ., data = data)
Residuals:
ALL 100 residuals are 0: no residual degrees of freedom!
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.502e-01 NA NA NA
X2 3.153e-02 NA NA NA
X3 -6.200e-01 NA NA NA
X4 7.087e-01 NA NA NA
X5 4.392e-01 NA NA NA
X6 2.979e-01 NA NA NA
X7 -9.092e-02 NA NA NA
X8 -5.783e-01 NA NA NA
X9 5.965e-01 NA NA NA
X10 -8.289e-01 NA NA NA
...
Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: NaN
F-statistic: NaN on 99 and 0 DF, p-value: NA
ผลการค้นหาดูแปลก ๆ แต่ลองคิดดูสิ
> sum(abs(data$X1-fitted(fit)))
[1] 0
มันเป็นศูนย์ดังนั้นแผนการก็ไม่ได้โกหกเรา: โมเดลพอดี และมันมีความแม่นยำในการจำแนกประเภทอย่างไร?
> sum(data$X1==fitted(fit))
[1] 100
ตัวอย่างที่ 2
อีกหนึ่งตัวอย่าง ช่วยสร้างข้อมูลเพิ่มเติม:
data2 <- cbind(1:10, diag(10))
colnames(data2) <- make.names(1:11)
data2 <- as.data.frame(data2)
ดังนั้นดูเหมือนว่านี้:
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11
1 1 1 0 0 0 0 0 0 0 0 0
2 2 0 1 0 0 0 0 0 0 0 0
3 3 0 0 1 0 0 0 0 0 0 0
4 4 0 0 0 1 0 0 0 0 0 0
5 5 0 0 0 0 1 0 0 0 0 0
6 6 0 0 0 0 0 1 0 0 0 0
7 7 0 0 0 0 0 0 1 0 0 0
8 8 0 0 0 0 0 0 0 1 0 0
9 9 0 0 0 0 0 0 0 0 1 0
10 10 0 0 0 0 0 0 0 0 0 1
และตอนนี้ให้พอดีกับการถดถอยเชิงเส้นกับสิ่งนี้:
fit2 <- lm(X1~., data2)
ดังนั้นเราจึงได้รับการประมาณการต่อไปนี้:
> summary(fit2)
Call:
lm(formula = X1 ~ ., data = data2)
Residuals:
ALL 10 residuals are 0: no residual degrees of freedom!
Coefficients: (1 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|)
(Intercept) 10 NA NA NA
X2 -9 NA NA NA
X3 -8 NA NA NA
X4 -7 NA NA NA
X5 -6 NA NA NA
X6 -5 NA NA NA
X7 -4 NA NA NA
X8 -3 NA NA NA
X9 -2 NA NA NA
X10 -1 NA NA NA
X11 NA NA NA NA
Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: NaN
F-statistic: NaN on 9 and 0 DF, p-value: NA
มันอธิบายได้ด้วยตนเอง คุณสามารถนึกถึงตัวอย่างที่ 1คล้ายกับตัวอย่างที่ 2แต่เพิ่ม "เสียง" บางอย่างเข้าด้วยกัน หากคุณมีข้อมูลมากพอและใช้เพื่อ "คาดการณ์" บางครั้งคุณสมบัติ "เดียว" อาจทำให้คุณเชื่อว่าคุณมี "รูปแบบ" ที่อธิบายตัวแปรตามได้ดีในขณะที่มันอาจเป็นเรื่องบังเอิญ ในตัวอย่างที่ 2ไม่มีการคาดการณ์ใด ๆ แต่สิ่งเดียวกันเกิดขึ้นในตัวอย่างที่ 1เพียงแค่ค่าของตัวแปรต่างกัน
ตัวอย่างชีวิตจริง
ตัวอย่างชีวิตจริงของสิ่งนี้คือการทำนายการโจมตีของผู้ก่อการร้ายเมื่อวันที่ 11 กันยายน 2544 โดยการดู "รูปแบบ" ในจำนวนที่สุ่มโดยคอมพิวเตอร์เครื่องสร้างตัวเลขปลอมโดยGlobal Consciousness Projectหรือ"ข้อความลับ" ใน "Moby Dick"ที่เปิดเผยข้อเท็จจริงเกี่ยวกับการลอบสังหารคนดัง (แรงบันดาลใจจากสิ่งที่คล้ายกันในคัมภีร์ไบเบิล )
ข้อสรุป
หากคุณดูหนักพอคุณจะพบ "รูปแบบ" เพื่ออะไร อย่างไรก็ตามรูปแบบเหล่านั้นจะไม่ยอมให้คุณเรียนรู้อะไรเกี่ยวกับจักรวาลและจะไม่ช่วยให้คุณได้ข้อสรุปทั่วไป พวกเขาจะพอดีกับข้อมูลของคุณอย่างสมบูรณ์ แต่จะไร้ประโยชน์เพราะพวกเขาจะไม่พอดีกับสิ่งอื่นแล้วตัวข้อมูล พวกเขาจะไม่ยอมให้คุณทำการคาดการณ์นอกกลุ่มตัวอย่างที่สมเหตุสมผลเพราะสิ่งที่พวกเขาจะทำคือพวกเขาจะเลียนแบบมากกว่าที่จะอธิบายข้อมูล
ปัญหาทั่วไปที่ส่งผลให้เกิดการ overfitting ในชีวิตจริงคือนอกเหนือจากข้อกำหนดสำหรับแบบจำลองที่ระบุอย่างถูกต้องแล้วเราอาจเพิ่มสิ่งที่ไม่เกี่ยวข้อง: พลังที่ไม่เกี่ยวข้อง (หรือการแปลงอื่น ๆ ) ของคำที่ถูกต้องตัวแปรที่ไม่เกี่ยวข้องหรือปฏิสัมพันธ์ที่ไม่เกี่ยวข้อง
นี้เกิดขึ้นในการถดถอยพหุคูณถ้าคุณเพิ่มตัวแปรที่ไม่ควรจะปรากฏในรูปแบบที่กำหนดไว้อย่างถูกต้อง แต่ไม่ต้องการที่จะลดลงเพราะคุณกลัวการกระตุ้นให้เกิดอคติตัวแปรละเว้น แน่นอนคุณไม่มีทางรู้ว่าคุณรวมมันผิดเนื่องจากคุณไม่สามารถมองเห็นประชากรทั้งหมดเพียงตัวอย่างของคุณดังนั้นจึงไม่สามารถทราบได้อย่างแน่นอนว่าข้อกำหนดที่ถูกต้องคืออะไร (เนื่องจาก @Scortchi ชี้ให้เห็นในความคิดเห็นอาจไม่มีสิ่งใดในแบบจำลอง "ถูกต้อง" - ในแง่นั้นจุดประสงค์ของการสร้างแบบจำลองคือการหาสเปคที่ "ดีพอ" เพื่อหลีกเลี่ยงการบรรจุมากเกินไปเกี่ยวข้องกับการหลีกเลี่ยงความซับซ้อนของโมเดล มากกว่าที่จะอยู่ได้จากข้อมูลที่มีอยู่) หากคุณต้องการตัวอย่างจริงของการ overfitting สิ่งนี้จะเกิดขึ้นทุกครั้งคุณโยนตัวทำนายที่เป็นไปได้ทั้งหมดลงในแบบจำลองการถดถอยหากจริง ๆ แล้วพวกมันไม่มีความสัมพันธ์กับการตอบสนองเมื่อผลกระทบของผู้อื่นถูกแบ่งออกเป็นส่วน ๆ
ด้วยการ overfitting ประเภทนี้ข่าวดีก็คือการรวมคำที่ไม่เกี่ยวข้องเหล่านี้ไม่ได้แนะนำความลำเอียงของตัวประมาณของคุณและในตัวอย่างที่มีขนาดใหญ่มากค่าสัมประสิทธิ์ของคำที่ไม่เกี่ยวข้องควรอยู่ใกล้กับศูนย์ แต่ก็มีข่าวร้าย: เนื่องจากข้อมูลที่ จำกัด จากตัวอย่างของคุณกำลังถูกใช้เพื่อประเมินพารามิเตอร์เพิ่มเติมมันสามารถทำได้โดยมีความแม่นยำน้อยกว่า - ดังนั้นข้อผิดพลาดมาตรฐานของคำที่เกี่ยวข้องจะเพิ่มขึ้นอย่างแท้จริง นั่นก็หมายความว่าพวกมันมีแนวโน้มที่จะอยู่ห่างจากค่าที่แท้จริงมากกว่าการประมาณการจากการถดถอยที่ระบุอย่างถูกต้องซึ่งหมายความว่าหากได้รับค่าใหม่ของตัวแปรอธิบายของคุณการคาดการณ์จากตัวแบบ overfitted จะมีความแม่นยำน้อยกว่า รูปแบบที่ระบุอย่างถูกต้อง
นี่คือพล็อตของ GDP ของบันทึกเทียบกับประชากรของบันทึกสำหรับ 50 รัฐของสหรัฐอเมริกาในปี 2010 ตัวอย่างแบบสุ่มจาก 10 รัฐถูกเลือก (เน้นด้วยสีแดง) และสำหรับตัวอย่างนั้นเราพอดีกับโมเดลเชิงเส้นอย่างง่ายและพหุนามของปริญญา 5 สำหรับตัวอย่าง คะแนนพหุนามมีองศาอิสระเพิ่มขึ้นที่ปล่อยให้ "ดิ้น" ใกล้กับข้อมูลที่สังเกตได้มากกว่าเส้นตรง แต่ 50 รัฐในภาพรวมเชื่อฟังความสัมพันธ์เชิงเส้นเกือบทั้งหมดดังนั้นประสิทธิภาพการทำนายของแบบจำลองพหุนามในจุด 40 ตัวอย่างนอกนั้นแย่มากเมื่อเทียบกับแบบจำลองที่มีความซับซ้อนน้อยกว่าโดยเฉพาะอย่างยิ่งเมื่อคาดการณ์ พหุนามมีความเหมาะสมอย่างมากกับโครงสร้างแบบสุ่ม (เสียง) ของตัวอย่างซึ่งไม่ได้พูดถึงประชากรที่กว้างขึ้น มันยากจนโดยเฉพาะอย่างยิ่งในการประมาณค่าเกินกว่าช่วงที่สังเกตได้ของตัวอย่างการแก้ไขคำตอบนี้)
R
require(MASS) #for multivariate normal simulation
nsample <- 25 #sample to regress
nholdout <- 1e6 #to check model predictions
Sigma <- matrix(c(1, 0.5, 0.4, 0.5, 1, 0.3, 0.4, 0.3, 1), nrow=3)
df <- as.data.frame(mvrnorm(n=(nsample+nholdout), mu=c(5,5,5), Sigma=Sigma))
colnames(df) <- c("x1", "x2", "x3")
df$y <- 5 + 2 * df$x1 + rnorm(n=nrow(df)) #y = 5 + *x1 + e
holdout.df <- df[1:nholdout,]
regress.df <- df[(nholdout+1):(nholdout+nsample),]
overfit.lm <- lm(y ~ x1*x2*x3, regress.df)
correctspec.lm <- lm(y ~ x1, regress.df)
summary(overfit.lm)
summary(correctspec.lm)
holdout.df$overfitPred <- predict.lm(overfit.lm, newdata=holdout.df)
holdout.df$correctSpecPred <- predict.lm(correctspec.lm, newdata=holdout.df)
with(holdout.df, sum((y - overfitPred)^2)) #SSE
with(holdout.df, sum((y - correctSpecPred)^2))
require(ggplot2)
errors.df <- data.frame(
Model = rep(c("Overfitted", "Correctly specified"), each=nholdout),
Error = with(holdout.df, c(y - overfitPred, y - correctSpecPred)))
ggplot(errors.df, aes(x=Error, color=Model)) + geom_density(size=1) +
theme(legend.position="bottom")
นี่คือผลลัพธ์ของฉันจากการวิ่งครั้งเดียว แต่เป็นการดีที่สุดที่จะเรียกใช้การจำลองหลาย ๆ ครั้งเพื่อดูผลกระทบของตัวอย่างที่สร้างขึ้นที่แตกต่างกัน
> summary(overfit.lm)
Call:
lm(formula = y ~ x1 * x2 * x3, data = regress.df)
Residuals:
Min 1Q Median 3Q Max
-2.22294 -0.63142 -0.09491 0.51983 2.24193
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 18.85992 65.00775 0.290 0.775
x1 -2.40912 11.90433 -0.202 0.842
x2 -2.13777 12.48892 -0.171 0.866
x3 -1.13941 12.94670 -0.088 0.931
x1:x2 0.78280 2.25867 0.347 0.733
x1:x3 0.53616 2.30834 0.232 0.819
x2:x3 0.08019 2.49028 0.032 0.975
x1:x2:x3 -0.08584 0.43891 -0.196 0.847
Residual standard error: 1.101 on 17 degrees of freedom
Multiple R-squared: 0.8297, Adjusted R-squared: 0.7596
F-statistic: 11.84 on 7 and 17 DF, p-value: 1.942e-05
> summary(correctspec.lm)
Call:
lm(formula = y ~ x1, data = regress.df)
Residuals:
Min 1Q Median 3Q Max
-2.4951 -0.4112 -0.2000 0.7876 2.1706
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.7844 1.1272 4.244 0.000306 ***
x1 1.9974 0.2108 9.476 2.09e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.036 on 23 degrees of freedom
Multiple R-squared: 0.7961, Adjusted R-squared: 0.7872
F-statistic: 89.8 on 1 and 23 DF, p-value: 2.089e-09
> with(holdout.df, sum((y - overfitPred)^2)) #SSE
[1] 1271557
> with(holdout.df, sum((y - correctSpecPred)^2))
[1] 1052217
(และมีองศาอิสระในการทำมากกว่ารุ่นที่ระบุอย่างถูกต้องจึงสามารถสร้างแบบที่ "ดีกว่า") ดูผลรวมของข้อผิดพลาด Squared สำหรับการคาดการณ์ในชุดของโฮลด์ซึ่งเราไม่ได้ใช้ในการประมาณค่าสัมประสิทธิ์การถดถอยจากและเราสามารถเห็นได้ว่าแบบจำลองที่มีการติดตั้งมากเกินไปนั้นเลวร้ายเพียงใด ในความเป็นจริงแบบจำลองที่ระบุอย่างถูกต้องเป็นสิ่งที่ทำให้การคาดการณ์ที่ดีที่สุด เราไม่ควรประเมินการคาดการณ์ประสิทธิภาพการทำนายจากผลลัพธ์ของชุดข้อมูลที่เราใช้ประเมินแบบจำลอง นี่คือพล็อตความหนาแน่นของข้อผิดพลาดโดยมีข้อกำหนดของโมเดลที่ถูกต้องทำให้เกิดข้อผิดพลาดเพิ่มเติมใกล้กับ 0:
การจำลองแสดงให้เห็นถึงสถานการณ์ในชีวิตจริงที่เกี่ยวข้องอย่างชัดเจน (เพียงแค่จินตนาการถึงการตอบสนองในชีวิตจริงใด ๆ ซึ่งขึ้นอยู่กับตัวทำนายเดียวและจินตนาการรวมถึง "ตัวทำนาย" ภายนอกในแบบจำลอง) แต่มีประโยชน์ที่คุณสามารถเล่นกับกระบวนการสร้างข้อมูล ขนาดตัวอย่างลักษณะของโมเดลที่ติดตั้งเกินขนาดและอื่น ๆ นี่เป็นวิธีที่ดีที่สุดที่คุณสามารถตรวจสอบผลกระทบของการ overfitting เนื่องจากข้อมูลที่สังเกตได้โดยทั่วไปคุณไม่สามารถเข้าถึง DGP และยังคงเป็นข้อมูล "ของจริง" ในแง่ที่คุณสามารถตรวจสอบและใช้งานได้ นี่คือแนวคิดที่คุ้มค่าที่คุณควรทดสอบด้วย:
n <- 1e6
Sigma
ลองลดความสัมพันธ์ระหว่างตัวแปรโดยการเล่นกับองค์ประกอบปิดเส้นทแยงมุมของเมทริกซ์ความแปรปรวนความแปรปรวน เพียงจำไว้ว่าให้มันเป็นกึ่งบวกแน่นอน (ซึ่งรวมถึงการสมมาตร) คุณควรค้นหาว่าคุณลดความหลากหลายทางสีหรือไม่ชุดรูปแบบที่ติดตั้งมากเกินไปจะทำงานได้ไม่ดีนัก แต่จำไว้ว่าตัวทำนายที่สัมพันธ์กันเกิดขึ้นในชีวิตจริงdf$y <- 5 + 2*df$x1 + rnorm(n=nrow(df))
df$y <- 5 + 2 * df$x1 + 0.1*df$x2 + 0.1*df$x3 + rnorm(n=nrow(df))
nsample <- 25
nsample <- 1e6
มันสามารถประมาณเอฟเฟกต์ที่อ่อนแอลงได้ค่อนข้างดีและการจำลองแสดงแบบจำลองที่ซับซ้อนมีพลังการทำนายที่ดีกว่าแบบง่าย สิ่งนี้แสดงให้เห็นว่า "การ overfitting" เป็นปัญหาของทั้งความซับซ้อนของรูปแบบและข้อมูลที่มีเมื่อฉันพยายามที่จะเข้าใจตัวเองฉันเริ่มคิดในแง่ของการเปรียบเทียบกับการอธิบายวัตถุจริงดังนั้นฉันคิดว่ามันเป็น "โลกแห่งความจริง" ที่คุณจะได้รับถ้าคุณต้องการที่จะเข้าใจความคิดทั่วไป:
สมมติว่าคุณต้องการอธิบายแนวคิดของเก้าอี้แก่ใครบางคนเพื่อให้พวกเขาได้แบบจำลองเชิงแนวคิดที่ช่วยให้พวกเขาทำนายว่าวัตถุใหม่ที่พวกเขาพบคือเก้าอี้หรือไม่ คุณไปที่ Ikea และรับเก้าอี้แล้วเริ่มอธิบายโดยใช้ตัวแปรสองตัว: มันเป็นวัตถุที่มี 4 ขาที่คุณสามารถนั่งได้ นั่นอาจอธิบายอุจจาระหรือเตียงหรือสิ่งอื่น ๆ มากมาย แบบจำลองของคุณกำลังอยู่ในระดับต่ำเช่นเดียวกับที่คุณลองและจำลองการกระจายที่ซับซ้อนที่มีตัวแปรน้อยเกินไป - สิ่งที่ไม่ใช่เก้าอี้จำนวนมากจะถูกระบุว่าเป็นเก้าอี้ ดังนั้นขอเพิ่มจำนวนของตัวแปรเพิ่มว่าวัตถุต้องมีหลังตัวอย่างเช่น ตอนนี้คุณมีแบบจำลองที่ยอมรับได้ซึ่งอธิบายชุดเก้าอี้ของคุณ แต่โดยทั่วไปเพียงพอที่จะอนุญาตให้ระบุวัตถุใหม่เป็นหนึ่ง แบบจำลองของคุณอธิบายข้อมูลและสามารถคาดการณ์ได้ อย่างไรก็ตามสมมติว่าคุณมีชุดที่เก้าอี้ทั้งหมดเป็นสีดำหรือสีขาวและทำจากไม้ คุณตัดสินใจที่จะรวมตัวแปรเหล่านั้นไว้ในแบบจำลองของคุณและทันใดนั้นมันก็ไม่ได้ระบุเก้าอี้พลาสติกสีเหลืองเป็นเก้าอี้ ดังนั้นคุณได้ติดตั้งแบบจำลองของคุณคุณได้รวมคุณสมบัติของชุดข้อมูลของคุณราวกับว่ามันเป็นคุณสมบัติของเก้าอี้ทั่วไป (ถ้าคุณต้องการคุณได้ระบุ "สัญญาณรบกวน" เป็น "สัญญาณ" โดยตีความการเปลี่ยนแปลงแบบสุ่มจากตัวอย่างของคุณเป็น คุณลักษณะของ "เก้าอี้ในโลกแห่งความเป็นจริง") ดังนั้นคุณสามารถเพิ่มตัวอย่างของคุณและหวังว่าจะรวมวัสดุและสีใหม่บางส่วนหรือลดจำนวนตัวแปรในแบบจำลองของคุณ ไม่ระบุเก้าอี้พลาสติกสีเหลืองเป็นเก้าอี้ ดังนั้นคุณได้ติดตั้งแบบจำลองของคุณคุณได้รวมคุณสมบัติของชุดข้อมูลของคุณราวกับว่ามันเป็นคุณสมบัติของเก้าอี้ทั่วไป (ถ้าคุณต้องการคุณได้ระบุ "สัญญาณรบกวน" เป็น "สัญญาณ" โดยตีความการเปลี่ยนแปลงแบบสุ่มจากตัวอย่างของคุณเป็น คุณลักษณะของ "เก้าอี้ในโลกแห่งความเป็นจริง") ดังนั้นคุณสามารถเพิ่มตัวอย่างของคุณและหวังว่าจะรวมวัสดุและสีใหม่บางส่วนหรือลดจำนวนตัวแปรในแบบจำลองของคุณ ไม่ระบุเก้าอี้พลาสติกสีเหลืองเป็นเก้าอี้ ดังนั้นคุณได้ติดตั้งแบบจำลองของคุณคุณได้รวมคุณสมบัติของชุดข้อมูลของคุณราวกับว่ามันเป็นคุณสมบัติของเก้าอี้ทั่วไป (ถ้าคุณต้องการคุณได้ระบุ "สัญญาณรบกวน" เป็น "สัญญาณ" โดยตีความการเปลี่ยนแปลงแบบสุ่มจากตัวอย่างของคุณเป็น คุณลักษณะของ "เก้าอี้ในโลกแห่งความเป็นจริง") ดังนั้นคุณสามารถเพิ่มตัวอย่างของคุณและหวังว่าจะรวมวัสดุและสีใหม่บางส่วนหรือลดจำนวนตัวแปรในแบบจำลองของคุณ
นี่อาจเป็นการเปรียบเทียบแบบง่ายๆและการแยกย่อยภายใต้การตรวจสอบเพิ่มเติม แต่ฉันคิดว่ามันเป็นแนวความคิดทั่วไป ... แจ้งให้เราทราบหากบางส่วนต้องการการชี้แจง
ในการสร้างแบบจำลองการคาดการณ์ความคิดคือการใช้ข้อมูลในมือเพื่อค้นหาแนวโน้มที่มีอยู่และสามารถนำไปใช้กับข้อมูลในอนาคต โดยการรวมตัวแปรในแบบจำลองของคุณที่มีผลกระทบเล็กน้อยที่ไม่สำคัญคุณจะละทิ้งแนวคิดนี้ สิ่งที่คุณกำลังทำคือการพิจารณาแนวโน้มเฉพาะในตัวอย่างเฉพาะของคุณที่มีเพียงเพราะเสียงแบบสุ่มแทนแนวโน้มที่แท้จริงและเป็นพื้นฐาน กล่าวอีกนัยหนึ่งแบบจำลองที่มีตัวแปรมากเกินไปเหมาะสมกับเสียงรบกวนมากกว่าการค้นหาสัญญาณ
นี่เป็นภาพประกอบที่พูดเกินจริงในสิ่งที่ฉันพูดถึง นี่คือจุดข้อมูลการสังเกตและสายเป็นแบบจำลองของเรา ลองดูที่แบบที่สมบูรณ์แบบ - ช่างยอดเยี่ยม! แต่เราค้นพบแนวโน้มจริงๆหรือเพียงแค่ปรับให้เข้ากับเสียง น่าจะเป็นหลัง
รูปแบบของการ overfitting ค่อนข้างธรรมดาในกีฬาคือการระบุรูปแบบเพื่ออธิบายผลลัพธ์ที่ผ่านมาโดยปัจจัยที่ไม่มีอำนาจที่คลุมเครือหรือไม่ดีที่สุดในการทำนายผลในอนาคต คุณลักษณะทั่วไปของ "รูปแบบ" เหล่านี้คือพวกเขามักจะใช้กรณีน้อยมากดังนั้นโอกาสที่บริสุทธิ์น่าจะเป็นคำอธิบายที่น่าเชื่อถือที่สุดสำหรับรูปแบบนี้
ตัวอย่างรวมถึงสิ่งต่าง ๆ เช่น ("คำพูด" ถูกสร้างขึ้นโดยฉัน แต่มักจะมีลักษณะคล้ายกัน)
ทีม A ชนะเกม X ทั้งหมดตั้งแต่โค้ชได้เริ่มสวมเสื้อแจ๊คเก็ตสีแดงของเขา
ที่คล้ายกัน:
เราจะไม่โกนตัวเองในช่วงรอบตัดเชือกเพราะนั่นช่วยให้เราชนะเกม X ที่ผ่านมา
ไสยศาสตร์น้อยลง แต่เป็นรูปแบบของการ overfitting เช่นกัน:
Borussia Dortmund ไม่เคยแพ้เกมในบ้าน Champions League ให้กับคู่ต่อสู้ชาวสเปนเมื่อพวกเขาแพ้ในเกมบุนเดสลีกาก่อนหน้านี้มากกว่าสองประตูโดยทำคะแนนได้อย่างน้อยหนึ่งครั้ง
ที่คล้ายกัน:
Roger Federer ชนะการแข่งขันถ้วยเดวิสคัพกับคู่ต่อสู้ชาวยุโรปอย่างน้อยที่สุดเมื่อเขาผ่านรอบรองชนะเลิศในรายการ Australian Open ในปีนั้น
สองคนแรกนั้นเป็นเรื่องไร้สาระที่ค่อนข้างชัดเจน (อย่างน้อยสำหรับฉัน) ตัวอย่างสองตัวอย่างสุดท้ายอาจเก็บตัวอย่างได้อย่างสมบูรณ์แบบ (เช่นในอดีต) แต่ฉันก็ยินดีที่จะเดิมพันกับคู่ต่อสู้ที่จะปล่อยให้ "ข้อมูล" นี้ส่งผลกระทบต่ออัตราต่อรองของเขาสำหรับดอร์ทมุนด์ชนะมาดริดหากพวกเขาแพ้ 4: 1 ที่ชาลเกเมื่อวันเสาร์ที่ผ่านมาหรือเฟเดอเรอร์ชนะ Djokovic แม้ว่าเขาจะชนะออสเตรเลียนโอเพในปีนั้นก็ตาม
นี่คือตัวอย่าง "โลกแห่งความจริง" ไม่ได้อยู่ในแง่ที่ว่ามีใครบางคนได้ค้นพบมันในการวิจัย แต่ในแง่ที่ว่ามันใช้แนวคิดในชีวิตประจำวันโดยไม่มีเงื่อนไขเฉพาะทางสถิติจำนวนมาก บางทีวิธีนี้ในการบอกว่าจะมีประโยชน์มากกว่าสำหรับบางคนที่มีการฝึกอบรมในสาขาอื่น
ลองนึกภาพว่าคุณมีฐานข้อมูลที่มีข้อมูลเกี่ยวกับผู้ป่วยที่เป็นโรคหายาก คุณเป็นนักศึกษาแพทย์บัณฑิตและต้องการดูว่าคุณสามารถรับรู้ปัจจัยเสี่ยงของโรคนี้หรือไม่ ในโรงพยาบาลแห่งนี้มีผู้ป่วยโรคนี้ถึง 8 รายและคุณได้บันทึกข้อมูลเกี่ยวกับพวกเขา 100 ชิ้น: อายุเชื้อชาติลำดับการเกิดพวกเขาเคยเป็นโรคหัดมาตั้งแต่เด็ก คุณได้บันทึกข้อมูลสำหรับผู้ป่วย 8 รายที่ไม่มีโรคนี้
คุณตัดสินใจใช้ฮิวริสติกต่อไปนี้สำหรับปัจจัยเสี่ยง: หากปัจจัยใช้ค่าที่กำหนดในผู้ป่วยที่เป็นโรคมากกว่าหนึ่งราย แต่ใน 0 ของการควบคุมของคุณคุณจะพิจารณาว่าเป็นปัจจัยเสี่ยง (ในชีวิตจริงคุณจะใช้วิธีที่ดีกว่า แต่ฉันต้องการทำให้มันง่าย) คุณพบว่าผู้ป่วย 6 คนของคุณเป็นมังสวิรัติ (แต่ไม่มีการควบคุมใดที่เป็นมังสวิรัติ) 3 คนมีบรรพบุรุษชาวสวีเดนและอีกสองคนมีอาการพูดติดอ่าง จากปัจจัยอื่น ๆ อีก 97 ปัจจัยไม่มีอะไรเกิดขึ้นกับผู้ป่วยมากกว่าหนึ่งราย แต่ไม่ปรากฏในกลุ่มควบคุม
หลายปีต่อมามีคนอื่นสนใจโรคกำพร้านี้และทำซ้ำงานวิจัยของคุณ เนื่องจากเขาทำงานในโรงพยาบาลขนาดใหญ่ซึ่งมีความร่วมมือในการแบ่งปันข้อมูลกับโรงพยาบาลอื่นเขาจึงสามารถใช้ข้อมูลได้ประมาณ 106 รายเมื่อเทียบกับ 8 รายของคุณ และเขาพบว่าความชุกของการพูดติดอ่างเหมือนกันในกลุ่มผู้ป่วยและกลุ่มควบคุม การพูดติดอ่างไม่ได้เป็นปัจจัยเสี่ยง
สิ่งที่เกิดขึ้นที่นี่คือกลุ่มเล็ก ๆ ของคุณมีผู้พูดติดอ่าง 25% โดยบังเอิญ ฮิวริสติกของคุณไม่มีทางรู้ว่าเรื่องนี้เกี่ยวข้องกับทางการแพทย์หรือไม่ คุณให้เกณฑ์ในการตัดสินใจเมื่อคุณพิจารณารูปแบบในข้อมูล "น่าสนใจ" มากพอที่จะรวมไว้ในโมเดลและตามเกณฑ์เหล่านี้การพูดติดอ่างนั้นน่าสนใจพอ
โมเดลของคุณมีการติดตั้งมากเกินไปเนื่องจากมีการรวมพารามิเตอร์ที่ไม่เกี่ยวข้องในโลกแห่งความจริง มันเหมาะกับตัวอย่างของคุณ - ผู้ป่วย 8 คน + 8 การควบคุม - ดีมาก แต่มันไม่เหมาะกับข้อมูลโลกแห่งความจริง เมื่อแบบจำลองอธิบายตัวอย่างของคุณได้ดีกว่าแบบที่อธิบายความเป็นจริงก็จะเรียกว่าแบบจำลองมากเกินไป
หากคุณเลือกผู้ป่วยที่มีคุณสมบัติ 3 ใน 8 รายมันจะไม่เกิดขึ้น - แต่คุณมีโอกาสสูงที่จะพลาดบางสิ่งที่น่าสนใจจริง ๆ โดยเฉพาะอย่างยิ่งในทางการแพทย์ที่มีโรคจำนวนมากเกิดขึ้นในคนเพียงไม่กี่คนที่แสดงให้เห็นถึงปัจจัยเสี่ยงนั่นเป็นเรื่องยากที่จะทำ และมีวิธีที่จะหลีกเลี่ยงได้ (โดยทั่วไปให้เปรียบเทียบกับตัวอย่างที่สองและดูว่าพลังการอธิบายยังคงเหมือนเดิมหรือลดลง) แต่นี่เป็นหัวข้อสำหรับคำถามอื่น
นี่เป็นตัวอย่างในชีวิตจริงของการ overfitting ที่ฉันช่วยทำให้เป็นโมฆะแล้วพยายาม (ไม่สำเร็จ) เพื่อหลีกเลี่ยง:
ฉันมีอนุกรมเวลาที่แยกอิสระหลายพันชุดแต่ละชุดมีจุดข้อมูลไม่เกิน 50 จุดและโครงการสร้างแบบจำลองเกี่ยวข้องกับการปรับเวกเตอร์อัตโนมัติ (VAR) ให้เหมาะกับแต่ละรายการ ไม่มีความพยายามที่จะทำให้เป็นปกติในการสังเกตประเมินองค์ประกอบความแปรปรวนหรืออะไรอย่างนั้น คะแนนเวลาถูกวัดตลอดระยะเวลาหนึ่งปีดังนั้นข้อมูลจึงขึ้นอยู่กับผลของฤดูกาลและวัฏจักรทุกชนิดที่ปรากฏเพียงครั้งเดียวในแต่ละช่วงเวลา
ชุดย่อยของข้อมูลหนึ่งชุดแสดงอัตราการเกิดของ Granger สูงอย่างไม่น่าเชื่อเมื่อเปรียบเทียบกับส่วนที่เหลือของข้อมูล การตรวจสอบสปอตเผยว่าเดือยบวกเกิดขึ้นหนึ่งหรือสองหนามแยกออกจากกันในเซตย่อยนี้ แต่มันชัดเจนจากบริบทที่ว่าสไปค์ทั้งสองเกิดจากแหล่งภายนอกโดยตรงและสไปค์หนึ่งไม่ทำให้เกิดอีก การคาดการณ์ที่ไม่อยู่ในกลุ่มตัวอย่างโดยใช้แบบจำลองนี้อาจจะค่อนข้างผิดพลาดเพราะโมเดลนั้นมีการติดตั้งมากเกินไป: แทนที่จะ "ปรับให้แหลม" ออกไปโดยการเฉลี่ยพวกมันลงในส่วนที่เหลือของข้อมูล การประมาณการ
โดยรวมแล้วฉันไม่คิดว่าโครงการดำเนินไปอย่างไม่ดี แต่ฉันไม่คิดว่าจะให้ผลลัพธ์ที่ใกล้เคียงกับที่เป็นประโยชน์เท่าที่ควร ส่วนหนึ่งของเหตุผลสำหรับเรื่องนี้ก็คือกระบวนการขั้นตอนอิสระหลาย VARs แม้จะมีเพียงหนึ่งหรือสองล่าช้าก็มีช่วงเวลาที่ยากลำบากในการแยกแยะข้อมูลและเสียงออกมา อดีต.
คนที่มีความคิดสร้างสรรค์จำนวนมากในหัวข้อนี้ --- มีประสบการณ์มากกว่าในด้านสถิติมากกว่าฉัน แต่ฉันก็ยังไม่เห็นตัวอย่างที่เข้าใจง่ายของคนทั่วไป ตัวอย่างของประธานาธิบดีไม่ได้กระทบต่อการเรียกเก็บเงินในแง่ของการ overfitting ทั่วไปเพราะในขณะที่มัน overfitting ในทางเทคนิคในการเรียกร้องป่าของแต่ละคนมักจะเป็นแบบ overfitting overfits - ทั้งหมด - เสียงที่กำหนดไม่เพียงองค์ประกอบหนึ่งของมัน
ฉันชอบแผนภูมิในคำอธิบายการแลกเปลี่ยนอคติแบบอคติในวิกิพีเดีย: http://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff
(แผนภูมิที่อยู่ด้านล่างสุดเป็นตัวอย่างของ overfitting)
ฉันกดยากที่จะคิดว่าเป็นตัวอย่างของโลกแห่งความจริงที่ไม่ได้ดูเหมือน mumbo-jumbo ที่สมบูรณ์ แนวคิดก็คือข้อมูลนั้นเป็นส่วนหนึ่งที่เกิดจากตัวแปรที่วัดได้และสามารถเข้าใจได้นั่นคือเสียงรบกวนแบบสุ่ม การพยายามทำแบบจำลองเสียงนี้เป็นรูปแบบจะทำให้คุณไม่ถูกต้อง
ตัวอย่างคลาสสิกคือการสร้างแบบจำลองตาม SOLELY บน R ^ 2 ใน MS Excel (คุณพยายามที่จะใส่สมการ / ตัวอักษรให้ใกล้เคียงที่สุดกับข้อมูลโดยใช้พหุนามไม่ว่าจะไร้สาระ)
สมมติว่าคุณกำลังพยายามสร้างแบบจำลองการขายไอศกรีมเป็นอุณหภูมิ คุณมีข้อมูล "โลกแห่งความจริง" คุณพล็อตข้อมูลและพยายามเพิ่ม R ^ 2 ให้สูงสุด คุณจะพบว่าใช้ข้อมูลในโลกแห่งความจริงสมการที่ใกล้เคียงที่สุดไม่ใช่แบบเชิงเส้นหรือสมการกำลังสอง เช่นเดียวกับสมการเกือบทุกคำศัพท์พหุนามที่คุณเพิ่มให้มากขึ้น (x ^ 6 -2x ^ 5 + 3x ^ 4 + 30x ^ 3-43.2x ^ 2-29x) - ยิ่งเข้าใกล้พอดีกับข้อมูลมากขึ้นเท่านั้น ดังนั้นวิธีการที่เกี่ยวข้องกับอุณหภูมิที่เหมาะสมกับการขายไอศกรีม? คุณจะอธิบายว่าพหุนามไร้สาระนั้นได้อย่างไร ความจริงคือมันไม่ใช่โมเดลที่แท้จริง คุณมีข้อมูลมากเกินไป
คุณกำลังทำเสียงดัง - ซึ่งอาจเกิดจากการส่งเสริมการขายหรือตัวแปรอื่น ๆ หรือ "เสียง" เช่นผีเสื้อที่กระพือปีกอยู่ในจักรวาล (สิ่งที่ไม่สามารถคาดเดาได้) --- และพยายามทำตัวแบบตามอุณหภูมิ ตอนนี้โดยปกติแล้วถ้าเสียงรบกวน / ข้อผิดพลาดของคุณไม่ได้เฉลี่ยเป็นศูนย์หรือมีความสัมพันธ์โดยอัตโนมัติ ฯลฯ ก็หมายความว่ามีตัวแปรเพิ่มเติมอยู่ที่นั่น --- แล้วในที่สุดคุณก็จะได้เสียงรบกวนกระจายแบบสุ่ม แต่ก็ยังดีที่สุดที่ฉันสามารถทำได้ อธิบายมัน.
วิธีการปรับให้เหมาะสมส่วนใหญ่มีปัจจัยเหลวไหลหรือที่รู้จักกันในหลายพารามิเตอร์ ตัวอย่างจริง:
นี่คือในช่วงที่เหมาะสมหรือเพียงเหมาะสมกับชุดใดชุดหนึ่งของปัญหา?
เรียนเพื่อสอบโดยจดจำคำตอบของการสอบปีที่แล้ว
สิ่งที่ฉันชอบคือ“ สูตร 3964” ที่ค้นพบก่อนการแข่งขันฟุตบอลโลกในปี 1998:
บราซิลชนะการแข่งขันในปี 1970 และ 1994 สรุปตัวเลขทั้งสองนี้แล้วคุณจะได้ 3964; เยอรมนีชนะในปี 2517 และ 2533 เพิ่มอีก 3964; สิ่งเดียวกันกับอาร์เจนตินาที่ชนะในปี 1978 และ 1986 (1978 + 1986 = 3964)
นี่เป็นข้อเท็จจริงที่น่าประหลาดใจมาก แต่ทุกคนเห็นว่าไม่แนะนำให้ใช้การคาดการณ์ในอนาคตเกี่ยวกับกฎนั้น และแน่นอนว่ากฎให้ว่าผู้ชนะการแข่งขันฟุตบอลโลกในปี 1998 ควรจะเป็นอังกฤษตั้งแต่ปี 1966 + 1998 = 3964 และอังกฤษชนะในปี 1966 สิ่งนี้ไม่ได้เกิดขึ้นและผู้ชนะคือฝรั่งเศส
ใช้งานง่าย แต่อาจจะช่วยได้ สมมติว่าคุณต้องการเรียนรู้ภาษาใหม่ คุณเรียนรู้ได้อย่างไร แทนที่จะเรียนรู้กฎในหลักสูตรคุณใช้ตัวอย่าง รายการทีวีโดยเฉพาะ ดังนั้นคุณชอบรายการอาชญากรรมและคุณดูรายการตำรวจสองสามชุด จากนั้นคุณแสดงรายการอาชญากรรมอีกชุดและดูแบบฟอร์มชุดหนึ่ง ในรายการที่สามคุณเห็น - คุณรู้เกือบทุกอย่างไม่มีปัญหา คุณไม่ต้องการคำบรรยายภาษาอังกฤษ
แต่จากนั้นคุณลองใช้ภาษาที่เรียนรู้ใหม่ของคุณบนถนนในครั้งต่อไปและคุณรู้ว่าคุณไม่สามารถพูดอะไรได้นอกจากพูดว่า "เจ้าหน้าที่! ชายคนนั้นหยิบกระเป๋าของฉันแล้วยิงผู้หญิงคนนั้น!" ในขณะที่ 'ข้อผิดพลาดในการฝึกอบรม' ของคุณเป็นศูนย์ แต่ 'ข้อผิดพลาดในการทดสอบ' ของคุณนั้นสูงเนื่องจาก 'overfitting' ภาษาเรียนเพียงส่วนย่อยของคำที่ จำกัด และถือว่าเพียงพอ