Apa contoh dunia nyata dari "overfitting"?


107

Saya agak mengerti apa arti "overfitting", tetapi saya perlu bantuan tentang bagaimana menghasilkan contoh dunia nyata yang berlaku untuk overfitting.


12
Mungkin Anda bisa menjelaskan apa yang Anda 'pahami' tentang 'apa artinya overfitting', sehingga orang dapat mengatasi bagian-bagian yang tidak Anda mengerti tanpa harus menebak apa ini?
goangit

3
@ssdecontrol Korelasi palsu tidak terlalu cocok. Faktanya, korelasi palsu tidak perlu melibatkan model eksplisit, dan model implisit biasanya berupa garis lurus dengan dua parameter.
Nick Cox

1
@whuber: Ini mungkin lebih tepat untuk didiskusikan dengan meta, tapi saya terkejut melihat Anda mengonversi pos ini ke wiki komunitas. Bukankah itu berarti OP tidak akan mendapatkan peningkatan reputasi untuk upvotes masa depan? Bagi saya itu tampak seperti "hukuman" baginya; apa alasannya?
amoeba

4
@amoeba Ini bukan hukuman: pertanyaan ini seperti yang dinyatakan jelas tidak memiliki jawaban yang benar atau kanonik. Dalam bentuk aslinya sebagai pertanyaan non-CW, hasilnya di luar topik - dan seharusnya ditutup dengan cepat, BTW - tetapi karena mungkin ada nilai untuk memiliki beberapa contoh yang baik yang dibuat secara kolektif oleh masyarakat, memberikan status CW bukannya menutupnya tampaknya menjadi solusi yang masuk akal.
whuber

17
Sejauh ini sangat sedikit dari jawaban ini (hanya dua dari 11!) Yang bahkan mencoba menjawab pertanyaan tersebut, yang meminta contoh dunia nyata . Itu berarti bukan simulasi, bukan contoh teoretis, bukan kartun, tetapi model yang diterapkan serius pada data aktual. Catat juga, bahwa pertanyaan itu secara eksplisit mencoba menjauhkan jawaban dari penjelasan tentang apa overfitting itu.
whuber

Jawaban:


96

Berikut adalah contoh model seri waktu pemilihan presiden dari xkcd: masukkan deskripsi gambar di sini

Hanya ada 56 pemilihan presiden dan 43 presiden. Tidak banyak data untuk dipelajari. Ketika ruang prediktor meluas untuk memasukkan hal-hal seperti memiliki gigi palsu dan nilai titik Scrabble nama, cukup mudah bagi model untuk beralih dari mencocokkan fitur data yang dapat digeneralisasikan (sinyal) dan untuk mulai mencocokkan kebisingan. Ketika ini terjadi, kecocokan pada data historis dapat meningkat, tetapi model akan gagal total ketika digunakan untuk membuat kesimpulan tentang pemilihan presiden di masa depan.


15
Saya pikir Anda harus menambahkan sesuatu tentang bias sampel untuk menjelaskan bagaimana ini berhubungan dengan overfitting. Hanya potongan & tempel kartun yang hilang penjelasannya.
Neil Slater

5
Fitur bagus dari contoh ini adalah menunjukkan perbedaan antara overfitting dan kompleksitas. Aturan "As going California, so goes nation" sederhana, namun masih berpakaian.
Tom Minka

2
@TomMinka pada kenyataannya overfitting dapat disebabkan oleh kompleksitas (model yang terlalu rumit untuk disesuaikan dengan data yang terlalu sederhana, sehingga parameter tambahan akan sesuai dengan apa pun yang ada di tangan Anda) atau, seperti yang Anda tunjukkan, oleh fitur bising yang mendapatkan bobot lebih dalam keputusan daripada yang bersangkutan fitur. Dan ada banyak sumber kemungkinan overfitting (varians intrinsik dari data atau model, data yang tidak relevan untuk mewakili tujuan target, dll.). Saya pikir harus kita mengatakan bahwa ada overfitting s , bukan hanya overfitting (yang menyiratkan bahwa hanya ada satu penyebab yang sering tidak benar).
Gaborous

80

Favorit saya adalah contoh Matlab tentang populasi sensus AS versus waktu:

  • Model linear cukup bagus
  • Model kuadrat lebih dekat
  • Model kuartik memprediksi penghancuran total mulai tahun depan

(Setidaknya saya sangat berharap ini adalah contoh overfitting)

http://www.mathworks.com/help/curvefit/examples/polynomial-curve-fitting.html#zmw57dd0e115masukkan deskripsi gambar di sini


1
Untuk memperjelas persis di bawah plot mereka mengatakan: "Perilaku fit polinomial tingkat enam di luar rentang data membuatnya menjadi pilihan yang buruk untuk ekstrapolasi dan Anda dapat menolaknya. "
usεr11852

49

Studi tentang Chen et al. (2013) cocok dua kubik dengan diskontinuitas yang diharapkan dalam harapan hidup sebagai fungsi garis lintang.

Chen Y., Ebenstein, A., Greenstone, M., dan Li, H. 2013. Bukti tentang dampak paparan polusi udara yang berkelanjutan pada harapan hidup dari kebijakan Sungai Huai Tiongkok. Prosiding National Academy of Sciences 110: 12936-12941. abstrak

Terlepas dari publikasi dalam jurnal yang luar biasa, dll., Dukungan diam-diam oleh orang-orang terkemuka, dll. Saya masih akan menyajikan ini sebagai contoh prima facie dari over-fitting.

Sebuah tanda adalah kisah yang tidak masuk akal dari kubik. Menyesuaikan kubik secara implisit mengasumsikan ada beberapa alasan mengapa harapan hidup akan bervariasi sebagai polinomial derajat ketiga dari garis lintang tempat Anda tinggal. Kelihatannya agak tidak masuk akal: tidak mudah membayangkan mekanisme fisik yang masuk akal yang akan menyebabkan efek seperti itu.

Lihat juga posting blog berikut untuk analisis yang lebih rinci dari makalah ini: Bukti tentang dampak penggunaan regresi polinomial yang berkelanjutan pada inferensial kausal (klaim bahwa pemanasan batubara mengurangi umur 5 tahun hingga setengah miliar orang) .


5
+1 Andrew Gelman bahkan menulis satu atau dua posting blog tentang mengapa itu tidak masuk akal. Ini salah satunya: andrewgelman.com/2013/08/05/…
Sycorax

@ user777 Blog Gelman mungkin adalah bagaimana saya pertama kali mendengar hal ini. Tapi saya pikir paling tepat untuk memberikan referensi, menambahkan bulu komentar pribadi saya, dan membiarkan orang menilai sendiri.
Nick Cox

1
Saya telah memotong edit oleh @DW yang memperkenalkan komentar tentang harapan hidup di berbagai negara, yang sama sekali tidak membahas makalah ini.
Nick Cox

2
Contoh lain yang saya pikir ilustratif (walaupun berpotensi lebih dibikin daripada "dunia nyata") adalah kompetisi prediksi yang memberi umpan balik pada hasil antara - seperti kaggle. Biasanya ada individu yang mengoptimalkan hasil ke leaderboard, tetapi mereka bukan pemenang untuk sampel bertahan. Rob Hyndman mendiskusikan hal ini. Itu membutuhkan perspektif yang lebih mendalam daripada yang saya kira OP inginkan di sini.
Andy W

2
Saya baru saja akan memposting makalah Gelman & Imbens yang keluar dari ini: nber.org/papers/w20405 (gated, sayangnya)
shadowtalker

38

Dalam sebuah artikel pada 14 Maret 2014 di Science , David Lazer, Ryan Kennedy, Gary King, dan Alessandro Vespignani mengidentifikasi masalah di Google Pantau Flu Dunia yang mereka anggap overfitting.

Angka

Inilah cara mereka menceritakan kisah itu, termasuk penjelasan mereka tentang sifat overfitting dan mengapa hal itu menyebabkan algoritma gagal:

Pada bulan Februari 2013, ... Nature melaporkan bahwa GFT memperkirakan lebih dari dua kali lipat proporsi kunjungan dokter untuk penyakit mirip influenza (ILI) daripada Pusat Pengendalian dan Pencegahan Penyakit (CDC) .... Ini terjadi terlepas dari kenyataan bahwa GFT dibangun untuk memprediksi laporan CDC. ...

Pada dasarnya, metodologi ini adalah untuk menemukan kecocokan terbaik di antara 50 juta istilah pencarian agar sesuai dengan 1152 poin data. Peluang menemukan istilah pencarian yang sesuai dengan kecenderungan flu tetapi secara struktural tidak terkait, dan karenanya tidak memprediksi masa depan, cukup tinggi. Pengembang GFT, pada kenyataannya, melaporkan menyingkirkan istilah pencarian musiman yang tidak terkait dengan flu tetapi berkorelasi kuat dengan data CDC, seperti yang berhubungan dengan bola basket sekolah menengah. Ini seharusnya menjadi peringatan bahwa big data terlalu banyak digunakan dalam jumlah kecil kasus — suatu keprihatinan standar dalam analisis data. Metode ad hoc ini membuang istilah pencarian aneh gagal ketika GFT benar-benar melewatkan pandemi influenza A – H1N1 2009 nonseasonal.

[Penekanan ditambahkan.]


3
Sayangnya contoh ini memiliki beberapa masalah. Makalah ini menyarankan dua alasan yang agak berbeda mengapa GFT membuat prediksi yang buruk: overfitting dan perubahan pada mesin pencari. Para penulis mengakui bahwa mereka tidak dalam posisi untuk menentukan alasan (jika ada) yang benar, sehingga pada dasarnya spekulasi. Selanjutnya, paragraf tentang overfitting mengacu pada versi asli sistem, sedangkan prediksi dalam grafik dibuat dengan sistem yang dimodifikasi.
Tom Minka

1
@ Tom Artikel ini tidak ditulis seolah-olah tuduhan overfitting adalah spekulasi: penulis dengan tegas menyatakan hal itu. Saya pikir itu pernyataan yang masuk akal. Mereka juga membahas alasan mengapa mereka harus agak spekulatif: Google tidak terbuka atau transparan tentang algoritma. Menurut saya tidak penting untuk tujuan saat ini apakah overfitting hanya terjadi dalam satu versi atau banyak, tetapi ketika saya ingat penulis juga membahas hal ini dan menunjukkan bukti berlebih overfitting dalam algoritma saat ini.
Whuber

2
Artikel itu hanya mengatakan bahwa overfitting adalah masalah standar dalam analisis data. Itu tidak mengklaim bahwa overfitting adalah alasannya. Referensi (2) menjelaskan lebih rinci, tetapi sekali lagi mengatakan bahwa overfitting hanya merupakan "masalah yang mungkin", dengan pernyataan "Karena algoritma pencarian dan istilah permintaan yang dihasilkan yang digunakan untuk menentukan model GFT yang asli dan yang diperbarui tetap tidak diungkapkan, itu adalah sulit untuk mengidentifikasi alasan kinerja sistem yang kurang optimal dan membuat rekomendasi untuk perbaikan. "
Tom Minka

@ Tom Saya akan mendukung kutipan yang diberikan di sini, yang akurat, sebagai dukungan yang memadai untuk mengapa model Google Flu layak dipertimbangkan dalam konteks saat ini.
whuber

Diskusi yang menarik. Saya akan menambahkan bahwa grafik mungkin mendukung argumen dengan lebih baik jika garis diberi label.
rolando2

32

Saya melihat gambar ini beberapa minggu yang lalu dan berpikir itu agak relevan dengan pertanyaan yang ada.

gambar meme

Alih-alih cocok secara linier urutannya, ia dilengkapi dengan polinomial kuartik, yang sangat cocok, tetapi menghasilkan jawaban yang jelas konyol.


12
Ini tidak menjawab pertanyaan sebagaimana ditanyakan, dan mungkin lebih baik sebagai komentar atau tidak diposting sama sekali. Ini tidak memberikan contoh dunia nyata overfitting (yang merupakan pertanyaan yang ditanyakan). Itu juga tidak menjelaskan bagaimana contoh gambar relevan dengan overfitting. Akhirnya, ini sangat singkat. Kami lebih suka jawaban menyeluruh dan terperinci yang menjawab pertanyaan yang diajukan - bukan hanya diskusi yang terkait dengan pertanyaan itu.
DW

9
Sebenarnya ini adalah persis kasus overfitting karena model yang terlalu kompleks, karena Anda dapat membangun infinity fungsi tingkat tinggi (non-linier) untuk menghasilkan jumlah tak terbatas dari syarat terakhir urutan yang berbeda sambil tetap menyesuaikan istilah lain (dikenal), dengan menggunakan interpolasi Lagrange seperti yang dijelaskan di sini .
Gaborous

@ user1121352 Dalam kartun itu, polinomial tingkat tinggi adalah model yang sebenarnya, jadi ini bukan soal terlalu pas. Jawaban seperti "9" (angka ganjil berikutnya) atau "11" (perdana ganjil berikutnya) sebenarnya kurang cocok karena menggunakan model yang terlalu sederhana untuk memprediksi nilai berikutnya. Kartun sebenarnya menggambarkan kasus yang berlawanan, bahwa model yang lebih kompleks bisa benar.
Sycorax

8
Polinomial kuartik (sebagaimana ditafsirkan oleh saya) dimaksudkan untuk menjadi solusi konyol, karena jawaban yang jelas bahwa siapa pun akan memberikan sebelum melihat solusi konyol adalah 9 (atau nilai OEIS lainnya). Saya berasumsi bahwa format "doge" menunjukkan sarkasme, tetapi kita dengan jelas melihat Hukum Poe bekerja di sini.
Maret

2
Namun, inilah tepatnya yang ingin saya sampaikan, yaitu kita tidak tahu apa fungsi sebenarnya. Jika Anda melakukan analisis orisinal, Anda tidak memiliki sumber daya seperti OEIS untuk memohon kebenaran: itulah yang berusaha dibuat oleh model Anda. Saya menghargai bahwa kartun itu sedang mencoba sarkasme, tetapi penempatan kartun dalam diskusi khusus ini memaparkan seluk beluk penting pada pertanyaan tentang overfitting dan pemodelan statistik secara umum. Maksud dari pencipta aslinya tidak relevan karena Anda telah membuat ulang di sini!
Sycorax

22

Bagi saya contoh terbaik adalah sistem Ptolema dalam astronomi. Ptolemy berasumsi bahwa Bumi berada di pusat alam semesta, dan menciptakan sistem canggih orbit melingkar bersarang, yang akan menjelaskan pergerakan benda di langit dengan cukup baik. Para astronom harus terus menambahkan lingkaran untuk menjelaskan penyimpangan, sampai suatu hari menjadi begitu rumit sehingga orang-orang mulai meragukannya. Saat itulah Copernicus datang dengan model yang lebih realistis.

Ini adalah contoh terbaik dari overfitting kepada saya. Anda tidak dapat menyesuaikan proses pembuatan data (DGP) dengan data. Anda hanya bisa mengenakan model yang salah ditentukan. Hampir semua model kita dalam ilmu-ilmu sosial tidak ditentukan secara spesifik, jadi kuncinya adalah mengingat ini, dan menjaga mereka tetap kikir. Bukan untuk mencoba menangkap setiap aspek dari kumpulan data, tetapi mencoba untuk menangkap fitur-fitur penting melalui penyederhanaan.


15
Tampaknya ini bukan contoh overfitting. Tidak ada yang salah dengan sistem Ptolemeus sebagai model prediksi: ini rumit hanya karena sistem koordinatnya geosentris daripada berasal dari pusat massa galaksi. Masalahnya, oleh karena itu, kecocokan yang akurat dan sah dibuat dengan model yang terlalu rumit. (Elips jauh lebih sederhana daripada epiklik.) Merupakan tantangan nyata untuk menemukan model nonlinear yang pelit!
whuber

1
Anda akan berakhir dengan banyak lingkaran untuk memodelkan orbit bulan-bulan Jupiter dalam sistem Ptolemeus.
Aksakal

17
Itu benar - tetapi pada kenyataannya, itu belum tentu terlalu berlebihan. Tes asam terletak pada prediksi nilai-nilai masa depan, yang dalam sistem itu bekerja cukup baik untuk bertahan selama 1400 tahun. Data yang overfit bukan ketika model ini sangat rumit, tetapi ketika itu begitu fleksibel bahwa dengan menangkap rinci asing menghasilkan prediksi yang lebih akurat dari yang diharapkan dari analisis residual model pada data pelatihan.
whuber

2
EY=k=09βkxi

2
EY=k=09βkxkx

22

Katakanlah Anda memiliki 100 titik pada grafik.

Anda bisa mengatakan: hmm, saya ingin memprediksi yang berikutnya.

  • dengan garis
  • dengan polinomial orde kedua
  • dengan polinomial orde ketiga
  • ...
  • dengan polinomial orde 100

Di sini Anda dapat melihat ilustrasi yang disederhanakan untuk contoh ini: masukkan deskripsi gambar di sini

Semakin tinggi urutan polinomial, semakin baik sesuai dengan titik-titik yang ada.

Namun, polinomial orde tinggi, meskipun tampak seperti model yang lebih baik untuk titik-titik, sebenarnya overfitting mereka. Ini memodelkan kebisingan daripada distribusi data yang sebenarnya.

Sebagai konsekuensinya, jika Anda menambahkan titik baru ke grafik dengan kurva yang pas, Anda mungkin akan lebih jauh dari kurva daripada jika Anda menggunakan polinomial orde rendah yang lebih sederhana.


"Sebagai konsekuensinya, jika Anda menambahkan titik baru ke grafik dengan kurva yang sangat pas, mungkin akan lebih jauh dari kurva daripada jika Anda menggunakan polinomial orde rendah yang lebih sederhana" - apalagi, ini masih benar bahkan jika proses menghasilkan data untuk titik baru (yaitu hubungan dalam populasi) sebenarnya adalah polinom berdaya tinggi seperti yang Anda (over) pasang.
Silverfish

19
Gambar-gambar di sini sebenarnya salah - misalnya, polinomial 9 derajat hanya diplot sebagai fungsi linier satu demi satu, tapi saya menduga pada kenyataannya ia harus berayun liar naik turun dalam rentang antara titik-titik. Anda harus melihat efek ini dalam polinomial 5 derajat juga.
Ken Williams

17

Analisis yang mungkin berkontribusi pada bencana Fukushima adalah contoh overfitting. Ada hubungan yang dikenal luas dalam Ilmu Bumi yang menggambarkan probabilitas gempa bumi dengan ukuran tertentu, mengingat frekuensi yang diamati dari gempa "yang lebih rendah". Ini dikenal sebagai hubungan Gutenberg-Richter, dan menyediakan log garis lurus selama beberapa dekade. Analisis risiko gempa bumi di sekitar reaktor (diagram ini dari buku bagus Nate Silver "The Signal and the Noise") menunjukkan "ketegaran" dalam data. Mengabaikan kekusutan mengarah pada perkiraan risiko tahunan gempa berkekuatan 9 sekitar 1 banding 300 - jelas sesuatu yang harus dipersiapkan. Namun, overfitting garis kemiringan ganda (seperti yang tampaknya dilakukan selama penilaian risiko awal untuk reaktor) mengurangi prediksi risiko menjadi sekitar 1 dalam 13.000 tahun. Orang tidak dapat menyalahkan para insinyur karena tidak merancang reaktor untuk menahan peristiwa yang tidak mungkin - tetapi orang harus benar-benar menyalahkan para ahli statistik yang mengenakan (dan kemudian mengekstrapolasi) data ...

masukkan deskripsi gambar di sini


Apakah ini meyakinkan bahwa model kemiringan ganda terlalu sesuai? Ketegaran menonjol; Saya kira jika setiap segmen garis diperkirakan dari, katakanlah, masing-masing 3 poin, Anda akan mendapatkan prediksi yang lebih baik daripada menunggu dengan memperkirakan satu baris. (Tentu saja pengamatan selanjutnya dari peristiwa "1 dalam 13.000 tahun" membantahnya! Tapi itu sulit ditafsirkan karena kita tidak akan memeriksa kembali model ini jika itu tidak terjadi.) Jika ada alasan fisik untuk mengabaikan ketegaran yang dirasakan maka kasus pakaian ini lebih kuat - Saya tidak tahu seberapa baik data seperti itu biasanya cocok dengan hubungan Gutenberg-Richter yang ideal.
Silverfish

Ini sangat menggambarkan bahaya ekstrapolasi, dan perlunya fungsi kerugian yang memperhitungkan beratnya konsekuensi dari kesalahan ...
Silverfish

3
Masalahnya sebenarnya adalah sangat sedikit data yang digunakan untuk beberapa poin terakhir - sehingga mereka memiliki banyak ketidakpastian di dalamnya. Mencermati data, Anda dapat melihat ada satu peristiwa 7,9, kemudian beberapa 7,7. Hanya sedikit yang diketahui tentang gempa yang lebih besar dari 8,0 karena jarang terjadi - tetapi ketika Anda mengamati gempa 9.0 (gempa Tohoku yang menyebabkan Tsunami), Anda dapat menarik kesimpulan sendiri. Garis lurus mungkin konservatif - tetapi ketika menyangkut keselamatan nuklir, konservatif itu baik.
Floris

1
@ Floris Poin bagus. Akan lebih baik jika mereka menggunakan plot kotak yang tidak hanya menunjukkan frekuensi yang diamati tetapi juga interval kepercayaan untuk frekuensi tersebut. Maka orang mungkin akan mendapatkan kotak yang sangat sempit di sebelah kiri dalam diagram dan kotak yang sangat lebar di sebelah kanan. (Interval kepercayaan seperti itu dapat dihitung dengan mengasumsikan bahwa setiap frekuensi mengikuti distribusi Poisson.)
user763305

3
@ user763305 - ya, saya cukup yakin bahwa menambahkan interval kepercayaan akan menunjukkan bahwa garis lurus tidak konsisten dengan data (atau dengan kata lain, Anda tidak dapat menolak hipotesis nol bahwa data mengikuti garis lurus).
Floris

15

"Agh! Pat meninggalkan perusahaan. Bagaimana kita bisa menemukan penggantinya?"

Posting Pekerjaan:

Dicari: Insinyur Listrik. Orang berusia 21 tahun dengan gelar di bidang Teknik Listrik, matematika, dan peternakan. Harus setinggi 68 inci dengan rambut cokelat, tahi lalat di atas mata kiri, dan rentan terhadap cacian yang panjang lebar terhadap angsa dan penyalahgunaan kata 'nasihat'.

Dalam pengertian matematika, overfitting sering merujuk pada pembuatan model dengan lebih banyak parameter daripada yang diperlukan, menghasilkan kecocokan yang lebih baik untuk set data tertentu, tetapi tanpa menangkap detail yang relevan yang diperlukan agar sesuai dengan set data lain dari kelas yang diminati.

Dalam contoh di atas, poster tidak dapat membedakan yang relevan dari karakteristik yang tidak relevan. Kualifikasi yang dihasilkan kemungkinan hanya dipenuhi oleh satu orang yang sudah mereka kenal tepat untuk pekerjaan itu (tetapi tidak lagi menginginkannya).


8
Sambil menghibur, jawaban ini tidak memberikan wawasan tentang apa arti overfitting dalam arti statistik. Mungkin Anda bisa memperluas jawaban Anda untuk memperjelas hubungan antara atribut yang sangat khusus ini dan pemodelan statistik.
Sycorax

+1 Tandai. Saya setuju dengan @ user777 hanya sebagian kecil. Mungkin kalimat akan membawa pulang contoh ringkas. Tetapi menambahkan terlalu banyak akan menghilangkan kesederhanaan.
ndoogan

Saya pikir ini adalah jawaban yang bagus - ini menunjukkan jenis overfitting yang sangat umum yang pada dasarnya menghafal data pelatihan, terutama kasus umum ketika jumlah data pelatihan tidak cukup untuk menjenuhkan kekuatan ekspresif dari model.
Ken Williams

14

Yang ini dibuat-buat, tapi saya harap ini akan menggambarkan kasusnya.

Contoh 1

k=100n=100

set.seed(123)
k <- 100
data <- replicate(k, rnorm(100))
colnames(data) <- make.names(1:k)
data <- as.data.frame(data)

Sekarang, mari kita masukkan regresi linier ke dalamnya:

fit <- lm(X1 ~ ., data=data)

Dan di sini adalah ringkasan untuk sepuluh prediksi pertama:

> 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

hasilnya terlihat sangat aneh, tapi mari kita plot itu.

masukkan deskripsi gambar di sini

X1X1

> sum(abs(data$X1-fitted(fit)))
[1] 0

Ini nol, jadi plotnya tidak berbohong kepada kami: modelnya sangat cocok. Dan seberapa tepat klasifikasi itu?

> sum(data$X1==fitted(fit))
[1] 100

X1

Contoh 2

Satu lagi contoh. Mari kita membuat lebih banyak data:

data2 <- cbind(1:10, diag(10))
colnames(data2) <- make.names(1:11)
data2 <- as.data.frame(data2)

jadi terlihat seperti ini:

   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

dan sekarang mari kita masukkan regresi linier untuk ini:

fit2 <- lm(X1~., data2)

jadi kami mendapatkan taksiran berikut:

> 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

R2=1X1

X1=10+X2×9+X3×8+X4×7+X5×6+X6×5+X7×4+X8×3+X9×2

X1=1

10+1×9+0×8+0×7+0×6+0×5+0×4+0×3+0×2

Cukup jelas. Anda dapat menganggap Contoh 1 mirip dengan Contoh 2 tetapi dengan beberapa "noise" ditambahkan. Jika Anda memiliki data yang cukup besar dan menggunakannya untuk "memprediksi" sesuatu maka kadang-kadang satu "fitur" dapat meyakinkan Anda bahwa Anda memiliki "pola" yang menggambarkan variabel dependen Anda dengan baik, sementara itu bisa saja hanya kebetulan. Dalam Contoh 2 tidak ada yang benar-benar diprediksi, tetapi persis sama telah terjadi pada Contoh 1 hanya nilai-nilai variabel yang berbeda.

Contoh kehidupan nyata

Contoh kehidupan nyata untuk ini adalah memprediksi serangan teroris pada 11 September 2001 dengan menonton "pola" dalam jumlah yang secara acak ditarik oleh generator nomor pseudorandom komputer oleh Global Consciousness Project atau "pesan rahasia" dalam "Moby Dick" yang mengungkap fakta tentang pembunuhan orang-orang terkenal (Terinspirasi oleh temuan serupa dalam Alkitab )

Kesimpulan

Jika Anda terlihat cukup keras, Anda akan menemukan "pola" untuk apa pun. Namun, pola-pola itu tidak akan membiarkan Anda belajar apa pun tentang alam semesta dan tidak akan membantu Anda mencapai kesimpulan umum. Mereka akan cocok dengan data Anda, tetapi akan sia-sia karena mereka tidak akan cocok dengan data lainnya. Mereka tidak akan membiarkan Anda membuat prediksi out-of-sample yang masuk akal, karena apa yang akan mereka lakukan, adalah mereka lebih suka meniru daripada menggambarkan data.


5
Saya sarankan menempatkan contoh kehidupan nyata di bagian atas jawaban ini. Itulah bagian yang sebenarnya relevan dengan pertanyaan - sisanya adalah saus.
shadowtalker

8

Masalah umum yang mengakibatkan overfitting dalam kehidupan nyata adalah bahwa selain istilah untuk model yang ditentukan dengan benar, kami mungkin telah menambahkan sesuatu yang tidak relevan: kekuatan yang tidak relevan (atau transformasi lainnya) dari istilah yang benar, variabel yang tidak relevan, atau interaksi yang tidak relevan.

Ini terjadi dalam regresi berganda jika Anda menambahkan variabel yang seharusnya tidak muncul dalam model yang ditentukan dengan benar tetapi tidak ingin menjatuhkannya karena Anda takut mendorong bias variabel yang dihilangkan . Tentu saja, Anda tidak memiliki cara untuk mengetahui bahwa Anda salah memasukkannya, karena Anda tidak dapat melihat seluruh populasi, hanya sampel Anda, jadi tidak dapat mengetahui dengan pasti apa spesifikasi yang benar. (Seperti yang ditunjukkan @Scortchi dalam komentar, mungkin tidak ada spesifikasi model yang "benar" - dalam hal itu, tujuan pemodelan adalah menemukan spesifikasi "cukup baik"; untuk menghindari overfitting melibatkan menghindari kompleksitas model. lebih besar daripada yang bisa dipertahankan dari data yang tersedia.) Jika Anda ingin contoh nyata dunia overfitting, ini terjadi setiap kaliAnda membuang semua prediktor potensial ke dalam model regresi, jika ada di antara mereka yang sebenarnya tidak memiliki hubungan dengan respons begitu efek dari orang lain tersingkir.

Dengan jenis overfitting ini, kabar baiknya adalah bahwa penyertaan istilah yang tidak relevan ini tidak menimbulkan bias bagi penaksir Anda, dan dalam sampel yang sangat besar koefisien dari istilah yang tidak relevan harus mendekati nol. Tetapi ada juga berita buruk: karena informasi yang terbatas dari sampel Anda sekarang digunakan untuk memperkirakan lebih banyak parameter, itu hanya dapat melakukannya dengan kurang presisi - sehingga kesalahan standar pada istilah yang benar-benar relevan meningkat. Itu juga berarti mereka cenderung lebih jauh dari nilai sebenarnya daripada perkiraan dari regresi yang ditentukan dengan benar, yang pada gilirannya berarti bahwa jika diberi nilai baru dari variabel penjelas Anda, prediksi dari model overfitted akan cenderung kurang akurat daripada untuk model yang ditentukan dengan benar.

Berikut adalah plot PDB log terhadap populasi log untuk 50 negara bagian AS pada tahun 2010. Sampel acak dari 10 negara dipilih (disorot dengan warna merah) dan untuk sampel tersebut kami mencocokkan model linier sederhana dan polinomial derajat 5. Untuk sampel poin, polinomial memiliki derajat kebebasan ekstra yang membuatnya "menggeliat" lebih dekat ke data yang diamati daripada garis lurus bisa. Tetapi 50 negara secara keseluruhan mematuhi hubungan yang hampir linier, sehingga kinerja prediktif model polinomial pada 40 titik out-of-sample sangat buruk dibandingkan dengan model yang kurang kompleks, terutama ketika ekstrapolasi. Polinomial secara efektif menyesuaikan beberapa struktur acak (noise) dari sampel, yang tidak menyamaratakan populasi yang lebih luas. Itu sangat buruk dalam ekstrapolasi di luar kisaran yang diamati dari sampel.revisi jawaban ini.)

Ekstrapolasi dari model yang terlalu rumit

Ryi=2x1,i+5+ϵix2x3x1x2x3

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")

Ini adalah hasil saya dari sekali jalan, tetapi yang terbaik adalah menjalankan simulasi beberapa kali untuk melihat efek dari berbagai sampel yang dihasilkan.

>     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

x1R2

>     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

R2R2

>     with(holdout.df, sum((y - overfitPred)^2)) #SSE
[1] 1271557
>     with(holdout.df, sum((y - correctSpecPred)^2))
[1] 1052217

R2y^y(dan memiliki lebih banyak derajat kebebasan untuk melakukannya daripada model yang ditentukan dengan benar, sehingga dapat menghasilkan kecocokan "lebih baik"). Lihatlah jumlah kesalahan kuadrat untuk prediksi pada set ketidaksepakatan, yang kami tidak gunakan untuk memperkirakan koefisien regresi dari, dan kita dapat melihat seberapa buruk kinerja model overfitted. Pada kenyataannya, model yang ditentukan dengan benar adalah model yang membuat prediksi terbaik. Kami tidak seharusnya mendasarkan penilaian kami terhadap kinerja prediktif pada hasil dari set data yang kami gunakan untuk memperkirakan model. Berikut adalah plot kepadatan kesalahan, dengan spesifikasi model yang benar menghasilkan lebih banyak kesalahan mendekati 0:

Kesalahan prediksi pada set ketidaksepakatan

Simulasi ini dengan jelas mewakili banyak situasi kehidupan nyata yang relevan (bayangkan saja respons kehidupan nyata yang bergantung pada satu prediktor, dan bayangkan memasukkan "prediktor" yang tidak lazim ke dalam model) tetapi memiliki manfaat yang dapat Anda mainkan dengan proses pembuatan data , ukuran sampel, sifat dari model overfitted dan sebagainya. Ini adalah cara terbaik Anda dapat memeriksa efek overfitting karena untuk data yang diamati Anda umumnya tidak memiliki akses ke DGP, dan itu masih data "nyata" dalam arti bahwa Anda dapat memeriksa dan menggunakannya. Berikut adalah beberapa ide berharga yang harus Anda coba:

  • Jalankan simulasi beberapa kali dan lihat bagaimana hasilnya berbeda. Anda akan menemukan lebih banyak variabilitas menggunakan ukuran sampel kecil daripada yang besar.
  • n <- 1e6x1
  • Coba kurangi korelasi antara variabel prediktor dengan bermain dengan elemen off-diagonal dari matriks varians-kovarians Sigma. Hanya ingat untuk tetap positif semi-pasti (yang termasuk menjadi simetris). Anda harus menemukan jika Anda mengurangi multikolinieritas, model overfitted tidak berkinerja sangat buruk. Namun perlu diingat bahwa prediktor yang berkorelasi memang terjadi dalam kehidupan nyata.
  • Coba bereksperimen dengan spesifikasi dari model overfitted. Bagaimana jika Anda memasukkan istilah polinomial?
  • ydf$y <- 5 + 2*df$x1 + rnorm(n=nrow(df))yxi
  • yx2x3x1df$y <- 5 + 2 * df$x1 + 0.1*df$x2 + 0.1*df$x3 + rnorm(n=nrow(df))x2x3xx1x2x3nsample <- 25x1x2x3nsample <- 1e6, dapat memperkirakan efek yang lebih lemah dengan cukup baik, dan simulasi menunjukkan model kompleks memiliki kekuatan prediksi yang mengungguli yang sederhana. Ini menunjukkan bagaimana "overfitting" adalah masalah kompleksitas model dan data yang tersedia.

1
(-1) Agak penting untuk dipahami bahwa pemasangan yang berlebihan tidak semata-mata dihasilkan dari penyertaan istilah "tidak relevan" atau "asing" yang tidak akan muncul dalam model yang ditentukan dengan benar. Memang dapat dikatakan bahwa dalam banyak aplikasi gagasan model benar sederhana tidak masuk akal & tantangan pemodelan prediktif adalah untuk membangun model yang kompleksitasnya proporsional dengan jumlah data yang tersedia.
Scortchi

1
Saya akan mengirimkan foto Anda kepada anggota Kongres saya untuk mendukung reformasi imigrasi
prototipe

1
(+1) Saya pikir suntingan meningkatkan penjelasan over-fitting tanpa mengorbankan pemahaman.
Scortchi

1
@Aksakal saya mencoba menjawab pertanyaan: "Saya butuh bantuan tentang bagaimana membuat contoh dunia nyata yang berlaku untuk overfitting". Tidak jelas apakah OP diminta untuk menemukan makalah yang diterbitkan yang sesuai, atau - makna yang lebih alami "datang dengan" - untuk membangun contoh mereka sendiri. Jika overfitting itu buruk maka mengapa dalam kehidupan nyata ada orang yang berpakaian berlebihan? Jawaban saya, bahwa seorang analis mungkin lebih suka melakukan kesalahan untuk model yang terlalu ditentukan dan tidak ditentukan (karena takut OVB atau kecurigaan hubungan yang melengkung) adalah contoh seperti itu. Grafik / simulasi menunjukkan konsekuensinya: prediksi out-of-sample yang buruk
Silverfish

1
@Aksakal Tidak jelas bagi saya bahwa model polinom adalah "tidak nyata" untuk grafik. Fitur dominan adalah linear, tetapi apakah kita tahu itu sepenuhnya linier? Jika kita memiliki akses ke jutaan unit politik hipotetis & aku harus mempertaruhkan hidupku, aku lebih suka bertaruh kita akan mendeteksi hubungan sedikit melengkung daripada bahwa semua istilah polinom tidak akan signifikan. Meskipun demikian, pas ke n rendah, hanya model linier yang menghindari overfitting. (Kami tidak dapat menyelesaikan ini karena pengambilan sampel yang sulit dari populasi "negara bagian AS" yang secara teori tidak terbatas; ini adalah keuntungan dari data simulasi!)
Silverfish

4

Ketika saya mencoba untuk memahami ini sendiri, saya mulai berpikir dalam hal analogi dengan menggambarkan objek nyata, jadi saya kira itu sebagai "dunia nyata" yang bisa Anda dapatkan, jika Anda ingin memahami ide umum:

Katakanlah Anda ingin menjelaskan kepada seseorang konsep kursi, sehingga mereka mendapatkan model konseptual yang memungkinkan mereka untuk memprediksi jika objek baru yang mereka temukan adalah kursi. Anda pergi ke Ikea dan mendapatkan sampel kursi, dan mulai menggambarkannya dengan menggunakan dua variabel: itu adalah objek dengan 4 kaki di mana Anda bisa duduk. Nah, itu mungkin juga menggambarkan bangku atau tempat tidur atau banyak hal lainnya. Model Anda kurang cocok, sama seperti jika Anda ingin mencoba dan memodelkan distribusi yang kompleks dengan variabel yang terlalu sedikit - banyak hal yang bukan kursi akan diidentifikasi sebagai kursi. Jadi, mari kita tambahkan jumlah variabel, tambahkan bahwa objek harus memiliki back, misalnya. Sekarang Anda memiliki model yang cukup dapat diterima yang menggambarkan set kursi Anda, tetapi cukup umum untuk memungkinkan objek baru diidentifikasi sebagai satu. Model Anda menjelaskan data, dan dapat membuat prediksi. Namun, katakan Anda kebetulan punya satu set di mana semua kursi berwarna hitam atau putih, dan terbuat dari kayu. Anda memutuskan untuk memasukkan variabel-variabel itu dalam model Anda, dan tiba-tiba itu tidak akan mengidentifikasi kursi kuning plastik sebagai kursi. Jadi, Anda telah melengkapi model Anda, Anda telah memasukkan fitur-fitur dataset Anda seolah-olah mereka adalah fitur kursi secara umum, (jika Anda mau, Anda telah mengidentifikasi "noise" sebagai "signal", dengan menafsirkan variasi acak dari sampel Anda sebagai fitur dari seluruh "kursi dunia nyata"). Jadi, Anda menambah sampel dan berharap untuk memasukkan beberapa bahan dan warna baru, atau mengurangi jumlah variabel dalam model Anda. t mengidentifikasi kursi kuning plastik sebagai kursi. Jadi, Anda telah melengkapi model Anda, Anda telah memasukkan fitur-fitur dataset Anda seolah-olah mereka adalah fitur kursi secara umum, (jika Anda mau, Anda telah mengidentifikasi "noise" sebagai "signal", dengan menafsirkan variasi acak dari sampel Anda sebagai fitur dari seluruh "kursi dunia nyata"). Jadi, Anda menambah sampel dan berharap untuk memasukkan beberapa bahan dan warna baru, atau mengurangi jumlah variabel dalam model Anda. t mengidentifikasi kursi kuning plastik sebagai kursi. Jadi, Anda telah melengkapi model Anda, Anda telah memasukkan fitur-fitur dataset Anda seolah-olah mereka adalah fitur kursi secara umum, (jika Anda mau, Anda telah mengidentifikasi "noise" sebagai "signal", dengan menafsirkan variasi acak dari sampel Anda sebagai fitur dari seluruh "kursi dunia nyata"). Jadi, Anda menambah sampel dan berharap untuk memasukkan beberapa bahan dan warna baru, atau mengurangi jumlah variabel dalam model Anda.

Ini mungkin analogi sederhana dan gangguan di bawah pengawasan lebih lanjut, tapi saya pikir ini berfungsi sebagai konseptualisasi umum ... Beritahu saya jika ada bagian yang perlu diklarifikasi.


Bisakah Anda jelaskan secara lebih rinci ide "noise" dan "signal" dan fakta bahwa model overfitted menggambarkan noise karena saya mengalami masalah dalam memahami hal ini.
quirik

4

Dalam pemodelan prediktif, idenya adalah menggunakan data yang ada untuk menemukan tren yang ada dan yang dapat digeneralisasikan ke data masa depan. Dengan memasukkan variabel dalam model Anda yang memiliki pengaruh kecil dan tidak signifikan, Anda mengabaikan ide ini. Apa yang Anda lakukan adalah mempertimbangkan tren spesifik dalam sampel spesifik Anda yang hanya ada karena kebisingan acak dan bukan tren yang mendasarinya. Dengan kata lain, model dengan variabel terlalu banyak cocok dengan noise daripada menemukan sinyal.

Inilah ilustrasi berlebihan tentang apa yang saya bicarakan. Di sini titik-titik adalah data yang diamati dan garis adalah model kami. Lihatlah itu sangat cocok - model yang hebat! Tapi apakah kita benar-benar menemukan tren atau kita hanya cocok dengan kebisingan? Mungkin yang terakhir.

masukkan deskripsi gambar di sini


4

Suatu bentuk overfitting cukup umum dalam olahraga, yaitu untuk mengidentifikasi pola untuk menjelaskan hasil masa lalu oleh faktor-faktor yang tidak memiliki atau paling tidak memiliki kekuatan samar untuk memprediksi hasil di masa depan. Fitur umum dari "pola" ini adalah bahwa mereka sering didasarkan pada sangat sedikit kasus sehingga kesempatan murni mungkin adalah penjelasan yang paling masuk akal untuk pola tersebut.

Contohnya termasuk hal-hal seperti ("kutipan" dibuat oleh saya, tetapi sering terlihat serupa)

Tim A telah memenangkan semua pertandingan X sejak pelatih mulai mengenakan jaket merah magisnya.

Serupa:

Kami tidak akan mencukur diri kami sendiri selama playoff, karena itu telah membantu kami memenangkan X pertandingan terakhir.

Kurang percaya takhayul, tetapi juga bentuk overfitting:

Borussia Dortmund tidak pernah kalah dalam pertandingan kandang Liga Champions dari lawan Spanyol ketika mereka telah kehilangan pertandingan tandang Bundesliga sebelumnya dengan lebih dari dua gol, setelah mencetak setidaknya satu gol sendiri.

Serupa:

Roger Federer telah memenangkan semua penampilannya di Piala Davis untuk lawan-lawan Eropa ketika ia setidaknya mencapai semi-final di Australia Terbuka tahun itu.

Dua yang pertama adalah omong kosong yang cukup jelas (setidaknya bagi saya). Dua contoh terakhir mungkin benar berlaku dalam sampel (yaitu, di masa lalu), tapi saya akan sangat senang bertaruh melawan lawan yang akan membiarkan "informasi" ini secara substansial mempengaruhi peluangnya untuk Dortmund mengalahkan Madrid jika mereka kalah 4: 1 di Schalke pada hari Sabtu sebelumnya atau Federer mengalahkan Djokovic, bahkan jika ia memenangkan Australia Terbuka tahun itu.


3

Berikut adalah contoh "dunia nyata" bukan dalam arti bahwa seseorang kebetulan menemukannya dalam penelitian, tetapi dalam arti bahwa ia menggunakan konsep sehari-hari tanpa banyak istilah statistik spesifik. Mungkin cara mengatakan ini akan lebih bermanfaat bagi beberapa orang yang pelatihannya di bidang lain.

Bayangkan Anda memiliki database dengan data tentang pasien dengan penyakit langka. Anda adalah seorang mahasiswa pascasarjana kedokteran dan ingin melihat apakah Anda dapat mengenali faktor risiko untuk penyakit ini. Ada 8 kasus penyakit di rumah sakit ini, dan Anda telah mencatat 100 informasi acak tentang mereka: usia, ras, urutan kelahiran, apakah mereka menderita campak sebagai anak, apa pun. Anda juga telah mencatat data untuk 8 pasien tanpa penyakit ini.

Anda memutuskan untuk menggunakan heuristik berikut untuk faktor-faktor risiko: jika suatu faktor mengambil nilai tertentu pada lebih dari satu pasien Anda yang sakit, tetapi pada 0 kontrol Anda, Anda akan menganggapnya sebagai faktor risiko. (Dalam kehidupan nyata, Anda akan menggunakan metode yang lebih baik, tetapi saya ingin membuatnya tetap sederhana). Anda mengetahui bahwa 6 pasien Anda adalah vegetarian (tetapi tidak ada kontrol yang vegetarian), 3 memiliki leluhur Swedia, dan dua dari mereka memiliki gangguan bicara gagap. Dari 97 faktor lainnya, tidak ada yang terjadi pada lebih dari satu pasien, tetapi tidak ada di antara kontrol.

Bertahun-tahun kemudian, orang lain tertarik dengan penyakit anak yatim ini dan mereplikasi penelitian Anda. Karena dia bekerja di rumah sakit yang lebih besar, yang memiliki kerjasama berbagi data dengan rumah sakit lain, dia dapat menggunakan data sekitar 106 kasus, berbeda dengan 8 kasus Anda. Dan dia menemukan bahwa prevalensi penderita gagap adalah sama pada kelompok pasien dan kelompok kontrol; gagap bukan merupakan faktor risiko.

Apa yang terjadi di sini adalah bahwa kelompok kecil Anda memiliki 25% penderita gagap secara acak. Heuristik Anda tidak memiliki cara untuk mengetahui apakah ini relevan secara medis atau tidak. Anda memberikan kriteria untuk memutuskan kapan Anda menganggap suatu pola dalam data "cukup" untuk dimasukkan dalam model, dan menurut kriteria ini, kegagapan itu cukup menarik.

Model Anda telah dilengkapi secara berlebihan, karena keliru memasukkan parameter yang tidak benar-benar relevan di dunia nyata. Ini cocok dengan sampel Anda - 8 pasien + 8 kontrol - sangat baik, tetapi tidak cocok dengan data dunia nyata. Ketika sebuah model menggambarkan sampel Anda lebih baik daripada menggambarkan realitas, itu disebut overfitted.

Jika Anda memilih ambang 3 dari 8 pasien yang memiliki fitur, itu tidak akan terjadi - tetapi Anda memiliki peluang lebih tinggi untuk melewatkan sesuatu yang benar-benar menarik. Terutama di bidang kedokteran, di mana banyak penyakit hanya terjadi di sebagian kecil orang yang menunjukkan faktor risiko, itu merupakan trade-off yang sulit dilakukan. Dan ada metode untuk menghindarinya (pada dasarnya, bandingkan dengan sampel kedua dan lihat apakah kekuatan yang menjelaskan tetap sama atau jatuh), tetapi ini adalah topik untuk pertanyaan lain.


Sangat mengingatkan pada xkcd.com/882
Floris

3

Ini adalah contoh nyata dari overfitting yang saya bantu lakukan dan kemudian mencoba (gagal) untuk menghindarinya:

Saya memiliki beberapa ribu independen, deret waktu bivariat, masing-masing dengan tidak lebih dari 50 titik data, dan proyek pemodelan melibatkan pemasangan vektor autoregresi (VAR) untuk masing-masing. Tidak ada upaya yang dilakukan untuk mengatur seluruh pengamatan, memperkirakan komponen varian, atau semacamnya. Poin waktu diukur selama satu tahun, sehingga data tunduk pada semua jenis efek musiman dan siklus yang hanya muncul sekali dalam setiap rangkaian waktu.

Satu subset dari data menunjukkan tingkat kausalitas Granger yang sangat tinggi dibandingkan dengan data lainnya. Pemeriksaan spot mengungkapkan bahwa lonjakan positif terjadi satu atau dua jeda terpisah dalam subset ini, tetapi jelas dari konteks bahwa kedua lonjakan disebabkan secara langsung oleh sumber eksternal dan bahwa satu lonjakan tidak menyebabkan yang lain. Perkiraan out-of-sample menggunakan model ini mungkin akan sangat salah, karena model yang dilengkapi: daripada "menghaluskan" paku dengan rata-rata ke dalam sisa data, ada beberapa pengamatan yang cukup bahwa paku sebenarnya mengemudi estimasi.

Secara keseluruhan, saya tidak berpikir proyek berjalan buruk tetapi saya tidak berpikir itu menghasilkan hasil yang sedekat mungkin. Bagian dari alasan untuk ini adalah bahwa prosedur banyak-independen-VAR, bahkan dengan hanya satu atau dua kelambatan, mengalami kesulitan untuk membedakan antara data dan kebisingan, dan begitu cocok untuk yang terakhir dengan mengorbankan memberikan wawasan tentang bekas.


1

Banyak orang cerdas di utas ini --- banyak yang lebih berpengalaman dalam statistik daripada saya. Tetapi saya masih belum melihat contoh yang mudah dipahami oleh orang awam. Contoh Presiden tidak cukup sesuai dengan ketentuan overfitting, karena meskipun secara teknis overfitting di masing-masing klaim liar, biasanya model overfitting overfits - SEMUA - kebisingan yang diberikan, bukan hanya satu elemen saja.

Saya sangat suka bagan dalam penjelasan tradeoff bias-varians di wikipedia: http://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff

(Grafik paling bawah adalah contoh overfitting).

Saya sulit sekali memikirkan contoh dunia nyata yang tidak terdengar seperti omong kosong lengkap. Idenya adalah bahwa data merupakan bagian yang disebabkan oleh variabel yang dapat diukur dan dapat dipahami --- bagian dari derau acak. Mencoba memodelkan derau ini sebagai suatu pola memberi Anda ketidaktepatan.

Contoh klasik adalah pemodelan berbasis SOLELY pada R ^ 2 di MS Excel (Anda berusaha menyesuaikan persamaan / model secara harfiah sedekat mungkin dengan data menggunakan polinomial, tidak peduli seberapa tidak masuk akal).

Katakanlah Anda sedang mencoba memodelkan penjualan es krim sebagai fungsi suhu. Anda memiliki data "dunia nyata". Anda memplot data dan mencoba memaksimalkan R ^ 2. Anda akan menemukan menggunakan data dunia nyata, persamaan kecocokan terdekat tidak linier atau kuadratik (yang masuk akal secara logis). Seperti hampir semua persamaan, istilah polinomial lebih tidak masuk akal yang Anda tambahkan (x ^ 6 -2x ^ 5 + 3x ^ 4 + 30x ^ 3-43.2x ^ 2-29x) - semakin dekat cocok dengan data. Jadi bagaimana hal itu secara wajar menghubungkan suhu dengan penjualan es krim? Bagaimana Anda menjelaskan polinomial yang konyol itu? Sebenarnya, itu bukan model yang sebenarnya. Anda sudah menyesuaikan data.

Anda menerima kebisingan yang tidak terhitung - yang mungkin disebabkan oleh promosi penjualan atau variabel lain atau "kebisingan" seperti kupu-kupu yang mengepakkan sayapnya di kosmos (sesuatu yang tidak pernah dapat diprediksi) --- dan berusaha memodelkannya berdasarkan suhu. Sekarang biasanya jika noise / error Anda tidak rata-rata nol atau auto-berkorelasi, dll, itu berarti ada lebih banyak variabel di luar sana --- dan kemudian pada akhirnya Anda mendapatkan noise yang terdistribusi secara acak, tapi tetap saja, itu yang terbaik yang saya bisa jelaskan itu.


2
The 'model' kemudian dalam komik Presiden jangan cocok untuk semua kebisingan yang diberikan.
Ben Voigt

Menurut saya komik ini tidak mirip dengan skenario yang paling cocok, meskipun aturan konyol akan secara akurat memprediksi semua Presiden masa lalu. Sebagian besar ramalan tidak memprediksi variabel dikotomis. Juga lucu menyebutkan aturan yang akan dilanggar dalam pemilihan berikutnya - dengan kata lain model pakaian yang salah selalu terbukti salah sepanjang waktu, menjadikannya prediktor sempurna masa depan. Sebagian besar model pakaian tidak didasarkan pada 1 variabel keliru yang dapat diuji sebagai eksternal - biasanya didasarkan pada terlalu banyak variabel dalam model, sembarangan semuanya dilemparkan untuk mengurangi R ^ 2.
John Babson

0

Sebagian besar metode optimasi memiliki beberapa faktor fudge alias hyperparameters. Contoh nyata:

Nmin=5,  finc=1.1,  fdec=0.5,  αstart=0.1,  fα=0.99.

Apakah ini terlalu pas, atau hanya pas untuk satu set masalah tertentu?


0

Belajar untuk ujian dengan menghafal jawaban untuk ujian tahun lalu.


0

Favorit saya adalah "formula 3964" yang ditemukan sebelum kompetisi sepak bola Piala Dunia 1998:

Brasil memenangkan kejuaraan pada tahun 1970 dan 1994. Jumlahkan 2 angka ini dan Anda akan mendapatkan 3964; Jerman menang pada 1974 dan 1990, bertambah lagi menjadi 3964; hal yang sama dengan kemenangan Argentina pada 1978 dan 1986 (1978 + 1986 = 3964).

Ini adalah fakta yang sangat mengejutkan, tetapi semua orang dapat melihat bahwa tidak disarankan untuk mendasarkan prediksi masa depan pada aturan itu. Dan memang, aturannya menyatakan bahwa pemenang Piala Dunia 1998 seharusnya adalah Inggris sejak 1966 + 1998 = 3964 dan Inggris menang pada 1966. Ini tidak terjadi dan pemenangnya adalah Prancis.


-2

Agak intuitif, tapi mungkin itu akan membantu. Katakanlah Anda ingin belajar bahasa baru. Bagaimana kamu belajar? alih-alih mempelajari aturan dalam suatu kursus, Anda menggunakan contoh. Secara khusus, acara TV. Jadi Anda suka acara kriminal, dan Anda menonton beberapa seri acara polisi. Kemudian, Anda mengambil acara kejahatan lain dan menonton beberapa seri dari yang satu itu. Dengan pertunjukan ketiga yang Anda lihat - Anda tahu hampir segalanya, tidak ada masalah. Anda tidak perlu terjemahan bahasa Inggris.

Tetapi kemudian Anda mencoba bahasa yang baru Anda pelajari di jalan pada kunjungan Anda berikutnya, dan Anda menyadari Anda tidak dapat membicarakan hal lain selain mengatakan "petugas! Orang itu mengambil tas saya dan menembak wanita itu!". Sementara 'kesalahan pelatihan' Anda nol, 'kesalahan pengujian' Anda tinggi, karena 'overfitting' bahasa, mempelajari hanya sebagian kecil kata-kata dan menganggapnya cukup.


8
Itu bukan overfitting, itu hanya belajar subset bahasa. Overfitting akan terjadi jika setelah menonton acara kriminal menunjukkan Anda mempelajari keseluruhan, tetapi aneh, bahasa yang bertepatan dengan bahasa Inggris pada semua topik yang berhubungan dengan kejahatan tetapi sepenuhnya omong kosong (atau mungkin Cina) ketika Anda berbicara tentang topik lain.
amoeba
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.