Overfitting dengan sengaja


8

Apakah masuk akal untuk mengenakan model secara sengaja?

Katakanlah saya memiliki kasus penggunaan di mana saya tahu data tidak akan banyak berbeda sehubungan dengan data pelatihan.

Saya berpikir di sini tentang prediksi lalu lintas, di mana status lalu lintas mengikuti serangkaian pola yang tetap

  • pagi perjalanan
  • aktivitas waktu malam
  • dan seterusnya.

Pola-pola ini tidak akan banyak berubah kecuali ada peningkatan mendadak pengguna mobil atau perubahan besar dalam infrastruktur jalan. Dalam hal ini saya ingin model menjadi bias mungkin terhadap pola yang dipelajari dalam data saat ini, dengan asumsi bahwa di masa depan pola dan data akan sangat mirip.


Ini kelihatannya sangat mencurigakan, jika Anda memiliki jaminan bahwa data tidak akan berubah, Anda dapat menyesuaikan model dan mendapatkan kinerja yang lebih baik, tetapi ini terdengar seperti ide yang buruk.
user2974951

1
Ini. Tetapi di sisi lain saya merasa itu bukan ide yang buruk jika saya tahu datanya tidak akan banyak berubah. Saya menulis pikiran saya di sini sehingga seseorang dapat membuktikan bahwa saya salah.
Brandon

5
Jika kinerja prediktif out-of-sample model Anda (yaitu pada data masa depan) tidak lebih buruk daripada kinerja pada data Anda saat ini, maka saya akan mengatakan bahwa secara teknis Anda tidak benar-benar overfitting. Anda overfitting ketika Anda menyesuaikan kebisingan dalam data Anda saat ini, dan itu harus selalu mengarah pada prediksi buruk pada data baru. Anda harus dapat mengatur model Anda ke tingkat kompleksitas yang benar dengan menggunakan validasi silang.
matteo

2
Dalam sebuah penelitian, subjek diminta untuk memakai beberapa data, dan kemudian mereka memenangkan lotere. Studi ini menyimpulkan bahwa overfitting data selalu merupakan hal yang baik.
Nat

Jawaban:


4

Secara umum tidak masuk akal untuk menyesuaikan data Anda dengan sengaja. Masalahnya adalah sulit untuk memastikan bahwa polanya juga muncul di bagian yang tidak termasuk dalam data Anda. Anda harus menegaskan bahwa ada pola dalam data. Salah satu kemungkinan melakukannya adalah konsep stasioneritas.


Apa yang Anda gambarkan mengingatkan saya pada stasioneritas dan ergodisitas. Dari sisi kontekstual / bisnis Anda menganggap bahwa rangkaian waktu Anda mengikuti pola-pola tertentu. Pola-pola ini disebut stasioneritas atau ergodisitas.

Definisi stasioneritas:

Proses stasioner adalah proses stokastik yang distribusi probabilitas gabungan tanpa syarat tidak berubah ketika bergeser waktu. Oleh karena itu parameter seperti mean dan varians juga tidak berubah seiring waktu.

Definisi ergodisitas:

Proses ergodik adalah proses yang berkaitan dengan atau menunjukkan sistem atau proses dengan properti yang, dengan waktu yang cukup, mereka termasuk atau menimpa semua titik dalam ruang yang diberikan dan dapat direpresentasikan secara statistik dengan pemilihan titik yang cukup besar.


Sekarang Anda ingin memastikan bahwa itu benar-benar mengikuti pola-pola tertentu ini. Anda dapat melakukan ini, misalnya dengan uji akar Unit (seperti Dickey-Fuller) atau uji Stationaritas (seperti KPSS).

Definisi Unit root test:

H0: Ada root unit.

H1: Tidak ada root unit. Ini menyiratkan dalam banyak kasus stasioneritas.

Definisi uji stasioneritas:

H0: Ada stasioneritas.

H1: Tidak ada stasioneritas.

Bacaan lebih lanjut:

Apa perbedaan antara tes stasioner dan uji unit root?


Jika deret waktu benar-benar mengikuti peramalan dan prediksi pola ini akan "lebih mudah dari sudut pandang statistik", misalnya Anda dapat menerapkan model ekonometrik untuk peramalan seperti ARIMA atau TBATS. Jawaban saya berkaitan dengan deret waktu univariat dan juga multivariat jika Anda memiliki stasioneritas data cross-sectional dan unit root bukan konsep umum.


8

Tidak, tidak masuk akal untuk menyesuaikan data Anda.

Istilah overfitting sebenarnya mengacu pada perbandingan antara model: Jika kinerja model_a lebih baik pada data pelatihan yang diberikan tetapi out-of-sample lebih buruk daripada model_b , model_a overfitting. Atau dengan kata lain: " ada alternatif yang lebih baik ".

Jika status lalu lintas " tidak akan berubah sama sekali sehubungan dengan data pelatihan", maka Anda akan mencapai hasil terbaik dengan hanya menghafal data pelatihan (sekali lagi, itu bukan "overfitting").

Tetapi "data tidak akan banyak berbeda sehubungan dengan data pelatihan" hanya menyamakan memiliki representasi yang masuk akal dari pola yang mendasarinya. Di sinilah pembelajaran mesin bekerja paling baik ( lingkungan stasioner seperti yang dijelaskan Ferdi ).


Baiklah Jadi mungkin lebih baik untuk mengatakan bahwa kita meningkatkan bias dengan sengaja. Saya mengatakan ini karena saya membaca tentang tradeoff bias vs varians dan masuk akal bagi saya untuk memiliki bias yang lebih tinggi untuk kasus penggunaan lalu lintas.
Brandon

algoritme + tuning akan memberikan Anda hasil terbaik (mengoptimalkan trade-off).
Laksan Nathan

+1 tetapi saya tidak berpikir "ada alternatif yang lebih baik" mengikuti dari overfitting.
kbrose

4

Saya akan mengatakan, bahwa ada perasaan untuk menyesuaikan data Anda, tetapi hanya untuk tujuan penelitian. (Jangan gunakan model overfitted dalam produksi!)

Dalam kasus ketika data dapat menjadi kompleks dan tugas non-sepele, mencoba untuk mengenakan suatu model bisa menjadi langkah penting!

Jika Anda dapat mengenakan suatu model - itu berarti bahwa data tersebut mungkin untuk dijelaskan oleh model tersebut.

Jika Anda bahkan tidak bisa berpakaian berlebihan - itu bisa memberi Anda petunjuk untuk investigasi:

  • data Anda belum siap untuk dimodelkan, sehingga Anda perlu melakukan lebih banyak persiapan data / fitur rekayasa
  • model Anda terlalu sederhana dan tidak dapat menangkap semua dependensi data
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.