Apakah model overfitted tentu tidak berguna?

25

Asumsikan bahwa model memiliki akurasi 100% pada data pelatihan, tetapi akurasi 70% pada data uji. Apakah argumen berikut ini benar tentang model ini?

Jelas bahwa ini adalah model overfitted. Akurasi pengujian dapat ditingkatkan dengan mengurangi overfitting. Namun, model ini masih bisa menjadi model yang berguna, karena memiliki akurasi yang dapat diterima untuk data uji.

Hossein
sumber
17
Jika 70% dapat diterima dalam aplikasi tertentu, maka saya setuju dengan Anda.
Richard Hardy
6
Saya sepenuhnya setuju dengan @RichardHardy. Ambil contoh, hutan acak: Seringkali, dengan konstruksi, kinerja insample (bukan kinerja out-of-bag) mendekati 100%, sehingga overfitting terlalu berlebihan. Namun tetap saja, kinerja yang lebih rendah yang dievaluasi out-of-bag atau pada set uji / validasi mungkin cukup tinggi untuk menjadikannya model yang berguna.
Michael M
1
@Metariat Mengapa tidak? Akurasi ini diperoleh pada set tes yang tidak digunakan dalam fase pelatihan.
Hossein
3
@ Metariat, Argumen seperti itu dapat menurunkan sebagian besar praktik statistik, misalnya penduga OLS dalam model linier Normal, uji- untuk kesetaraan sampel berarti nilai hipotesa, dan apa yang tidak. Yang menarik adalah bahwa argumennya tidak tergantung pada model overfitting pada sampel pelatihan. Ini berlaku juga untuk model pakaian dalam dan model apa pun secara umum. Apakah itu tidak benar? t
Richard Hardy
4
Saya tidak akan menyebut model itu terlalu pas. Model overfitted dibuat membandingkan kinerja validasi untuk menguji kinerja. Bahkan kemudian, hanya jika kinerja tes jauh lebih rendah dari yang dapat diterima, mungkin serempak. Kinerja pelatihan tidak ada artinya.
Firebug

Jawaban:

32

Saya pikir argumennya benar. Jika 70% dapat diterima dalam aplikasi tertentu, maka model ini berguna meskipun overfitted (lebih umum, terlepas dari apakah overfitted atau tidak).

Sementara menyeimbangkan overfitting terhadap underfitting menyangkut optimalitas (mencari solusi yang optimal), memiliki kinerja yang memuaskan adalah tentang kecukupan (apakah model berkinerja cukup baik untuk tugas itu?). Model bisa cukup baik tanpa menjadi optimal.

Sunting: setelah komentar oleh Firebug dan Matthew Drury di bawah OP, saya akan menambahkan bahwa untuk menilai apakah model dilengkapi berlebihan tanpa mengetahui kinerja validasi dapat bermasalah. Firebug menyarankan untuk membandingkan validasi vs kinerja tes untuk mengukur jumlah overfitting. Namun demikian, ketika model memberikan akurasi 100% pada set pelatihan tanpa memberikan akurasi 100% pada set tes, itu merupakan indikator kemungkinan overfitting (terutama dalam kasus regresi tetapi tidak harus dalam klasifikasi).

Richard Hardy
sumber
Anda meminta contoh: ambil kode untuk jaring saraf pada set data iris di stats.stackexchange.com/a/273930/2958 dan kemudian coba dengan set.seed(100)ilustrasi seperti fenomena yang dijelaskan di sini dan set.seed(15)sebaliknya. Mungkin lebih baik untuk mengatakan "indikator kemungkinan overfitting"
Henry
Apakah mungkin bagi model untuk mencapai akurasi 100% pada kereta dan tes dan tidak memiliki kelebihan?
Rika
1
@Breeze, saya pikir Anda bisa menanyakan ini pada utas terpisah (dan tautkan ke konteks ini jika diperlukan).
Richard Hardy
Saya hanya lakukan di sini adalah tautannya
Rika
25

Dalam proyek masa lalu saya dengan deteksi Penipuan Kartu Kredit, kami sengaja ingin terlalu menyesuaikan data / kode sandi untuk mengingat kasus penipuan. (Catatan, overfitting satu kelas bukanlah masalah overfitting umum yang dibicarakan OP.) Sistem semacam itu memiliki positif palsu yang relatif rendah dan memuaskan kebutuhan kita.

Jadi, saya akan mengatakan, model overfitted dapat berguna untuk beberapa kasus.

Haitao Du
sumber
5
Jawaban ini cukup menarik karena menyajikan use case. Saya pikir dengan "hard-coded to remember" @ hxd1011 berarti bahwa model memastikan bahwa masing-masing kasus penipuan yang dilaporkan mengarah ke "bendera penipuan" dan bahwa mereka tidak dihaluskan atau diinterpolasi oleh, uhm, katakanlah, fungsi yang dipasang . Sesuatu seperti itu kan?
IcannotFixIni
@IcannotFixIni ya. Bahkan, kami mencoba banyak cara lain untuk mengendalikan false positive. Tapi mencoba mengatasi kasus penipuan, dengan cara gila bekerja dengan baik.
Haitao Du
3
Dalam kasus Anda, fungsi evaluasi Anda adalah TPR kelebihan berat badan dan FPR underweighting, misalnya skor F_ dengan >> 1. (Sekarang saya tahu mengapa perusahaan kartu debit saya sangat menjengkelkan, mereka menandai hal kecil, bahkan pemindai kartu yang salah di pompa bensin)βββ
smci
3
Itu mungkin menjengkelkan, tetapi ribuan kali lebih menjengkelkan daripada membiayai Anda hancur karena seseorang jahat mendapat informasi kartu Anda.
Matthew Drury
12

Mungkin: waspadalah. Ketika Anda mengatakan bahwa akurasi 70% (namun Anda mengukurnya) cukup baik untuk Anda, rasanya seperti Anda mengasumsikan bahwa kesalahan didistribusikan secara acak atau merata.

Tetapi salah satu cara untuk melihat overfitting adalah bahwa hal itu terjadi ketika teknik model memungkinkan (dan proses pelatihannya mendorong) memberikan terlalu banyak perhatian pada kebiasaan dalam set pelatihan. Subjek dalam populasi umum yang berbagi kebiasaan ini mungkin memiliki hasil yang sangat tidak seimbang.

Jadi mungkin Anda berakhir dengan model yang mengatakan semua anjing merah menderita kanker - karena kekhasan khusus dalam data pelatihan Anda. Atau bahwa orang yang menikah antara usia 24 dan 26 hampir dijamin untuk mengajukan klaim asuransi penipuan. Akurasi 70% Anda menyisakan banyak ruang untuk kantong subjek menjadi 100% salah karena model Anda terlalu bagus.

(Tidak berpakaian berlebihan bukan jaminan bahwa Anda tidak akan memiliki kantong prediksi yang salah. Bahkan model yang kurang fit akan memiliki petak prediksi buruk, tetapi dengan overfitting Anda tahu bahwa Anda memperbesar efek quirks dalam data pelatihan Anda. .)

Wayne
sumber
Terima kasih. Apakah maksud Anda adalah bahwa keakuratan 70% ini diperoleh dari kebiasaan dalam data pelatihan yang juga tersedia dalam data uji? Tidak bisakah kita menilai berdasarkan keakuratan data pengujian? Saya pikir kebiasaan dalam data pelatihan yang tersedia dalam data tes harus dipelajari selama pelatihan.
Hossein
1
Jika saya mengerti Anda, itu akan menjadi sebaliknya: overfitting ke quirks telah memberi Anda akurasi tinggi dalam pelatihan. Alasan Anda mendapatkan akurasi yang lebih rendah dalam pengujian adalah bahwa kebiasaan tersebut tidak berlaku untuk keseluruhan dataset Anda. Tetapi tentu saja set pelatihan dan pengujian Anda - bahkan jika Anda melakukan validasi silang, yang membantu - mungkin aneh terkait dengan populasi Anda. Dalam hal ini hasil pengujian / validasi Anda tidak akan memprediksi dengan baik bagaimana Anda sebenarnya melakukan.
Wayne
Anda benar bahwa rangkaian pengujian mungkin unik terkait dengan populasi, tetapi ini tidak spesifik untuk model overfited. Semua evaluasi kami menderita karenanya dan kami tidak punya pilihan lain selain mengandalkan tes yang ditetapkan sebagai proksi untuk populasi yang sebenarnya.
Hossein
Benar, ini tidak unik untuk model overfitted, tetapi diperkuat dalam model overfit. Saya ingin mengatakan secara definisi model ini terlalu bagus karena jelas menderita terlalu menekankan quirks.
Wayne
7

Tidak, mereka bisa berguna, tetapi itu tergantung pada tujuan Anda. Beberapa hal muncul dalam pikiran:

  1. Klasifikasi Sensitif Biaya: Jika fungsi evaluasi Anda melebihi TPR dan underweights FPR, kami menggunakan skor dengan . (seperti jawaban @ hxd1011 tentang antifraud)Fββ1

  2. Penggolong seperti itu dapat sangat berguna dalam sebuah ensemble . Kita bisa memiliki satu classifier dengan bobot normal, satu yang melebihi TPR, satu yang melebihi FNR. Kemudian bahkan voting aturan-tiga sederhana, atau rata-rata, akan memberikan AUC yang lebih baik daripada penggolong tunggal terbaik. Jika masing-masing model menggunakan hiperparameter yang berbeda (atau set pelatihan yang ditetapkan, atau arsitektur model), yang membeli ansambel beberapa kekebalan dari overfitting.

  3. Demikian pula, untuk real-time anti-spam, anti-penipuan atau kredit scoring, itu ok dan diinginkan untuk menggunakan hirarki pengklasifikasi. Pengklasifikasi level-1 harus mengevaluasi dengan sangat cepat (ms) dan tidak masalah memiliki FPR tinggi ; kesalahan apa pun yang mereka lakukan akan ditangkap oleh pengklasifikasi tingkat tinggi yang lebih akurat, berfitur lengkap, lebih lambat atau akhirnya peninjau manusia. Contoh nyata: mencegah tajuk berita palsu dari pengambilalihan akun Twitter seperti "serangan bom Gedung Putih membunuh tiga" 2013 dari mempengaruhi $ miliaran perdagangan dalam beberapa mil dari posting. Tidak masalah bagi pengklasifikasi level-1 untuk menandai sebagai positif untuk spam; mari kita ijinkan dibutuhkan beberapa saat untuk (secara otomatis) menentukan kebenaran / kepalsuan dari laporan berita yang sensasional tetapi tidak terverifikasi.

smci
sumber
2

Saya tidak menyangkal bahwa model overfitted masih bisa bermanfaat. Namun perlu diingat bahwa 70% ini bisa menjadi informasi yang menyesatkan. Apa yang Anda butuhkan untuk menilai apakah suatu model bermanfaat atau tidak adalah kesalahan out-of-sample , bukan kesalahan pengujian ( kesalahan out-of-sample tidak diketahui, jadi kami harus memperkirakannya menggunakan set pengujian yang dibutakan ), dan bahwa 70% hampir merupakan pendekatan yang baik.

Untuk memastikan bahwa kami berada di halaman yang sama pada terminologi setelah komentar @RichardHardy, mari kita mendefinisikan kesalahan pengujian sebagai kesalahan yang diperoleh saat menerapkan model pada set pengujian buta. Dan kesalahan out-of-sample adalah kesalahan saat menerapkan model untuk seluruh populasi.

Perkiraan kesalahan out-of-sample tergantung pada dua hal: model itu sendiri dan data.

  • Model "optimal" menghasilkan akurasi (pengujian) yang hampir tidak bergantung pada data, dalam hal ini, itu akan menjadi perkiraan yang baik. "Terlepas" dari data, kesalahan prediksi akan stabil.

  • Tetapi, akurasi model overfitted sangat tergantung pada data (seperti yang Anda sebutkan 100% pada set pelatihan, dan 70% pada set lainnya). Jadi itu mungkin terjadi bahwa ketika menerapkan ke set data lain, akurasi bisa di suatu tempat lebih rendah dari 70% (atau lebih tinggi), dan kita bisa mendapat kejutan buruk. Dengan kata lain, 70% itu memberi tahu Anda apa yang Anda yakini, tetapi ternyata tidak.

Metariat
sumber
1
Karena set tes yang digunakan yang memperoleh akurasi 70% tidak terlihat dalam fase pelatihan, bukankah itu merupakan estimasi yang baik dari kesalahan out-of-sample? Saya pikir perbedaan antara kesalahan pelatihan (100%) dan kesalahan pengujian (70%) bukan indikasi yang baik tentang perbedaan antara kesalahan di luar sampel dan kesalahan pengujian. Ada kemungkinan bahwa model overfitted melakukan 70% akurat di dunia nyata, sementara itu 100% akurat untuk data pelatihan. Saya berharap kesalahan pelatihan lebih rendah dari kesalahan pengujian, karena data pelatihan digunakan untuk menghasilkan model, tetapi data pengujian tidak terlihat selama pelatihan.
Hossein
5
Saya pikir Anda mungkin bingung dengan set validasi dan set tes , dan kesalahan masing-masing. The uji kesalahan adalah yang out-of-sample error. Sementara kesalahan validasi adalah ukuran optimis dari model yang dipilih, kesalahan pengujian tidak. The uji kesalahan adalah perkiraan berisi tentang bagaimana model akan tampil pada sampel baru dari populasi yang sama. Kita dapat memperkirakan varians dari kesalahan tes, jadi kita cukup baik dengan hanya mengetahui kesalahan tes selama set tes tidak terlalu kecil. @ Hussein
Richard Hardy
3
Bisakah Anda menguraikan perbedaan antara kesalahan sampel dan kesalahan pengujian? Dari pemahaman saya, keduanya adalah kesalahan yang ditemukan ketika menerapkan model ke sampel yang tidak digunakan untuk melatih model. Satu-satunya perbedaan yang mungkin saya lihat adalah ketika menggunakan data deret waktu, data out-of-sample harus dari titik waktu kemudian, tetapi pertanyaan ini tidak menyebutkan itu.
Nuklir Wang
1
Dari sudut pandang saya, kesalahan pengujian adalah kesalahan yang diperoleh saat menerapkan model ke set blinded, itu adalah perkiraan kesalahan out-of-sample, yang merupakan kesalahan yang diperoleh saat menerapkan model ke seluruh populasi. Dan itu tidak sama, informasi yang berharga adalah kesalahan out-of-sample. Dan ketika model overfitted, kesalahan pengujian tidak stabil, dan data buruk dapat terjadi pada set data lainnya.
Metariat
4
@Metariat, Anda benar bahwa kesalahan tes merupakan perkiraan dan bisa berbeda dari satu set tes ke tes lainnya. Namun, seperti yang saya sebutkan sebelumnya, tidak ada alasan untuk berharap bahwa kesalahan pengujian meremehkan kesalahan sebenarnya (tidak, rata-rata). Jadi dengan mengambil sampel uji yang cukup besar, kita dapat mengikat kesalahan pengujian dengan tingkat kepercayaan yang diinginkan pada rentang yang diinginkan. Sekarang lebih praktis, mungkin Anda harus mendefinisikan kesalahan pengujian dengan mengedit jawaban Anda untuk memastikan tidak ada kesalahpahaman tentang apa yang Anda maksudkan ketika membandingkan kesalahan pengujian dengan kesalahan di luar sampel.
Richard Hardy