Kapan Model Underfitted?

56

Logika sering menyatakan bahwa dengan underfitting model, kapasitasnya untuk menggeneralisasi meningkat. Yang mengatakan, jelas di beberapa titik model underfitting menyebabkan model menjadi lebih buruk terlepas dari kompleksitas data.

Bagaimana Anda tahu kapan model Anda telah mencapai keseimbangan yang tepat dan tidak kekurangan data yang ingin dimodelkan?


Catatan: Ini adalah tindak lanjut dari pertanyaan saya, " Mengapa Overfitting Bad? "

kesalahan besar
sumber
Saya kira Anda maksudkan, " Logika sering menyatakan bahwa dengan (over) model yang kurang cocok, kapasitasnya untuk menggeneralisasi meningkat. "
Rubens

Jawaban:

43

Sebuah model tidak cocok ketika terlalu sederhana sehubungan dengan data yang ia coba modelkan.

Salah satu cara untuk mendeteksi situasi tersebut adalah dengan menggunakan pendekatan bias-varians , yang dapat direpresentasikan seperti ini:

masukkan deskripsi gambar di sini

Model Anda kurang dilengkapi ketika Anda memiliki bias tinggi.


Untuk mengetahui apakah Anda memiliki bias terlalu tinggi atau varians terlalu tinggi, Anda melihat fenomena dalam hal pelatihan dan kesalahan pengujian:

Bias tinggi: Kurva pembelajaran ini menunjukkan kesalahan tinggi pada pelatihan dan set tes, sehingga algoritme ini menderita bias tinggi:

masukkan deskripsi gambar di sini

Varians tinggi: Kurva pembelajaran ini menunjukkan kesenjangan yang besar antara pelatihan dan kesalahan set tes, sehingga algoritme menderita varians tinggi.

masukkan deskripsi gambar di sini

Jika suatu algoritma menderita varian tinggi:

  • lebih banyak data mungkin akan membantu
  • jika tidak, kurangi kompleksitas model

Jika suatu algoritma menderita bias tinggi:

  • menambah kompleksitas model

Saya akan menyarankan untuk menonton kursus Pembelajaran Mesin Coursera , bagian "10: Saran untuk menerapkan Pembelajaran Mesin", dari mana saya mengambil grafik di atas.

Franck Dernoncourt
sumber
Apakah Anda bermaksud mengatakan "tingkatkan kompleksitas model" pada poin terakhir? Saya pikir hanya "menambah kompleksitas model". . . Waktu yang baik untuk BTW saya terdaftar dalam kursus itu dan baru saja menonton video yang Anda maksud.
Neil Slater
@NeilSlater Terima kasih, tangkapan yang bagus, memang ada kesalahan ketik :)
Franck Dernoncourt
1
Anda tampaknya berasumsi bahwa kesalahan pelatihan adalah perkiraan bias yang layak. Bias (untuk kasus sederhana dari fungsi kehilangan MSE) didefinisikan sebagai kesalahan yang diharapkan Anda buat pada data baru , ketika Anda meratakan prediksi Anda atas semua set pelatihan yang berbeda . Apa yang membuat J_train (tidak dirata-rata di seluruh set pelatihan, dan tidak menggunakan data baru) merupakan estimasi bias yang layak?
maks.
@ FranckDernoncourt dapatkah kita mengasosiasikan overfitting dan underfitting dengan ukuran data pelatihan vs tes? Bisakah kita mengatakan bahwa model itu melatih pada pelatihan yang lebih kecil mengatur pakaian?
Sudip Bhandari
10

Untuk menjawab pertanyaan Anda, penting untuk memahami kerangka referensi yang Anda cari, jika Anda mencari apa yang secara filosofis Anda coba capai dalam pemasangan model, periksa Rubens menjawab dia melakukan pekerjaan yang baik untuk menjelaskan konteks itu.

Namun, dalam praktiknya pertanyaan Anda hampir seluruhnya ditentukan oleh tujuan bisnis.

Untuk memberikan contoh nyata, katakanlah Anda adalah petugas bagian pinjaman, Anda mengeluarkan pinjaman sebesar $ 3.000 dan ketika orang-orang membayar Anda kembali, Anda menghasilkan $ 50. Secara alami Anda mencoba membangun model yang memprediksi bagaimana jika seseorang default pada mereka pinjaman. Mari kita tetap sederhana ini dan katakan bahwa hasilnya adalah pembayaran penuh, atau default.

Dari perspektif bisnis, Anda dapat meringkas kinerja model dengan matriks kontingensi:

masukkan deskripsi gambar di sini

Ketika model memprediksi seseorang akan default, bukan? Untuk menentukan kelemahan dari pemasangan di bawah dan di bawah, saya merasa terbantu untuk menganggapnya sebagai masalah optimisasi, karena di setiap penampang ayat yang diprediksi kinerja model aktual ada biaya atau keuntungan yang harus dibuat:

masukkan deskripsi gambar di sini

Dalam contoh ini memprediksi default yang merupakan default berarti menghindari risiko apa pun, dan memperkirakan non-default yang tidak default akan menghasilkan $ 50 per pinjaman yang dikeluarkan. Di mana hal-hal menjadi tidak pasti adalah ketika Anda salah, jika Anda default ketika Anda memperkirakan non-default Anda kehilangan seluruh pokok pinjaman dan jika Anda memprediksi default ketika pelanggan benar-benar tidak akan membiarkan Anda menderita $ 50 dari peluang yang terlewat. Angka-angka di sini tidak penting, hanya pendekatannya.

Dengan kerangka kerja ini kita sekarang dapat mulai memahami kesulitan yang terkait dengan pas dan kurang pas.

Terlalu pas dalam hal ini berarti bahwa model Anda bekerja jauh lebih baik pada pengembangan Anda / data uji maka itu dalam produksi. Atau dengan kata lain, model produksi Anda akan jauh di bawah apa yang Anda lihat dalam pengembangan, kepercayaan salah ini mungkin akan menyebabkan Anda mengambil pinjaman yang jauh lebih berisiko daripada yang Anda inginkan dan membuat Anda sangat rentan kehilangan uang.

Di sisi lain, kurang pas dalam konteks ini akan meninggalkan Anda dengan model yang hanya melakukan pekerjaan yang buruk untuk mencocokkan kenyataan. Sementara hasil dari ini bisa sangat tidak dapat diprediksi, (kata sebaliknya yang Anda ingin menggambarkan model prediksi Anda), umumnya yang terjadi adalah standar diperketat untuk mengimbangi ini, yang mengarah ke kurang keseluruhan pelanggan yang mengarah ke pelanggan yang hilang.

Under fitting mengalami semacam kesulitan yang berlawanan yang tidak pas, yang di bawah fitting memberi Anda kepercayaan diri yang lebih rendah. Secara diam-diam, kurangnya prediktabilitas masih membuat Anda mengambil risiko yang tidak terduga, yang semuanya merupakan berita buruk.

Dalam pengalaman saya, cara terbaik untuk menghindari kedua situasi ini adalah memvalidasi model Anda pada data yang benar-benar di luar ruang lingkup data pelatihan Anda, sehingga Anda dapat memiliki keyakinan bahwa Anda memiliki sampel yang representatif dari apa yang akan Anda lihat 'di alam liar '

Selain itu, selalu merupakan praktik yang baik untuk memvalidasi ulang model Anda secara berkala, untuk menentukan seberapa cepat model Anda mengalami penurunan kualitas, dan apakah itu masih mencapai tujuan Anda.

Hanya untuk beberapa hal, model Anda kurang pas ketika melakukan pekerjaan yang buruk dalam memprediksi data pengembangan dan produksi.

neone4373
sumber
6

Model hanyalah abstraksi dari apa yang terlihat dalam kehidupan nyata. Mereka dirancang untuk abstrak-jauh seluk-beluk sistem nyata dalam pengamatan, sambil menjaga informasi yang cukup untuk mendukung analisis yang diinginkan.

Jika model overfit, itu memperhitungkan terlalu banyak detail tentang apa yang diamati, dan perubahan kecil pada objek tersebut dapat menyebabkan model kehilangan presisi. Di sisi lain, jika suatu model tidak sesuai, ia mengevaluasi beberapa atribut sehingga perubahan penting pada objek mungkin diabaikan.

Perhatikan juga bahwa pakaian dalam dapat dilihat sebagai pakaian luar , tergantung pada dataset. Jika input Anda dapat diklasifikasi secara benar dengan satu atribut, Anda dapat menyesuaikan model dengan data dengan menyederhanakan abstraksi menjadi satu karakteristik. Dan, dalam hal ini, Anda akan menggeneralisasikan terlalu banyak 1% dari basis ke dalam kelas-99% - atau juga menentukan model sedemikian rupa sehingga hanya dapat melihat satu kelas.

Cara yang masuk akal untuk mengatakan bahwa model tidak over atau underfit adalah dengan melakukan validasi silang. Anda membagi dataset Anda menjadi bagian k , dan mengatakan, pilih salah satu dari mereka untuk melakukan analisis Anda, saat menggunakan bagian k - 1 lainnya untuk melatih model Anda. Mempertimbangkan bahwa input itu sendiri tidak bias, Anda harus dapat memiliki banyak variasi data untuk dilatih dan dievaluasi seperti yang Anda miliki saat menggunakan model dalam pemrosesan kehidupan nyata.

Rubens
sumber
5

Sederhananya, salah satu pendekatan umum adalah untuk meningkatkan kompleksitas model, membuatnya sederhana, dan paling mungkin kurang pada awalnya, dan meningkatkan kompleksitas model sampai tanda-tanda awal overfitting disaksikan menggunakan teknik resampling seperti validasi silang, bootstrap, dll.

Anda meningkatkan kompleksitas baik dengan menambahkan parameter (jumlah neuron tersembunyi untuk jaringan saraf tiruan, jumlah pohon di hutan acak) atau dengan melonggarkan regularisasi (sering disebut lambda, atau C untuk mesin vektor dukungan) istilah dalam model Anda.

damienfrancois
sumber
3

CAPM (Capital Asset Pricing Model) di Keuangan adalah contoh klasik dari model pakaian dalam. Itu dibangun di atas teori yang indah bahwa "Investor hanya membayar risiko yang tidak dapat mereka diversifikasi" sehingga pengembalian yang diharapkan sama dengan korelasi dengan pengembalian pasar.

Sebagai rumus [0] Ra = Rf + B (Rm - Rf) di mana Ra adalah pengembalian yang diharapkan dari aset, Rf adalah tingkat bebas risiko, Rm adalah tingkat pengembalian pasar, dan Beta adalah korelasi dengan premium Ekuitas (Rm - Rf)

Ini indah, anggun, dan salah. Investor tampaknya membutuhkan tingkat saham kecil dan nilai yang lebih tinggi (didefinisikan berdasarkan buku ke pasar, atau hasil dividen).

Fama dan French [1] mempresentasikan pembaruan untuk model, yang menambahkan Betas tambahan untuk Ukuran dan Nilai.

Jadi, bagaimana Anda tahu secara umum? Ketika prediksi yang Anda buat salah, dan variabel lain dengan penjelasan logis meningkatkan kualitas prediksi. Sangat mudah untuk memahami mengapa seseorang mungkin berpikir saham kecil berisiko, terlepas dari risiko tidak terdiversifikasi. Ini adalah cerita yang bagus, didukung oleh data.

[0] http://www.investopedia.com/terms/c/capm.asp [1] http://en.wikipedia.org/wiki/Fama%E2%80%93French_three-factor_model

MathAttack
sumber