Overfitting

Overfitting berarti membuat model yang cocok (mengingat) set pelatihan sehingga sangat cocok sehingga model gagal membuat prediksi yang benar pada data baru. Model yang mengalami overfitting analog dengan penemuan yang berperforma baik di lab, tetapi tidak berguna di dunia nyata.

Pada Gambar 11, bayangkan bahwa setiap bentuk geometris mewakili posisi pohon di hutan persegi. Berlian biru menandai lokasi pohon yang sehat, sedangkan lingkaran oranye menandai lokasi pohon yang sakit.

Gambar 11. Gambar ini berisi sekitar 60 titik, setengahnya adalah
            pohon yang sehat dan setengah lainnya adalah pohon yang sakit.
            Pohon yang sehat sebagian besar berada di kuadran timur laut, meskipun beberapa
            pohon yang sehat menyelinap ke kuadran barat laut. Pohon yang sakit
            sebagian besar berada di kuadran tenggara, tetapi beberapa pohon yang sakit
            menyebar ke kuadran lain.
Gambar 11. Set pelatihan: lokasi pohon yang sehat dan sakit di hutan persegi.

 

Gambar bentuk apa pun secara mental—garis, kurva, oval...apa pun—untuk memisahkan pohon yang sehat dari pohon yang sakit. Kemudian, luaskan baris berikutnya untuk memeriksa satu kemungkinan pemisahan.

Bentuk kompleks yang ditampilkan pada Gambar 12 berhasil mengategorikan semua kecuali dua pohon. Jika kita menganggap bentuk sebagai model, maka ini adalah model yang fantastis.

Tapi, apa benar begitu? Model yang benar-benar sangat baik berhasil mengategorikan contoh baru. Gambar 13 menunjukkan yang terjadi saat model yang sama membuat prediksi pada contoh baru dari set pengujian:

Gambar 13. Kumpulan baru pohon sehat dan sakit yang ditempatkan di atas
            model yang ditampilkan pada Gambar 12. Model salah mengategorikan banyak
            pohon.
Gambar 13.Set pengujian: model kompleks untuk membedakan pohon yang sakit dengan yang sehat.

 

Jadi, model kompleks yang ditampilkan dalam Gambar 12 berhasil dengan baik pada set pelatihan, tetapi cukup buruk pada set pengujian. Ini adalah kasus klasik dari model yang overfitting ke data set pelatihan.

Fitting, overfitting, dan underfitting

Model harus membuat prediksi yang baik pada data baru. Artinya, Anda ingin membuat model yang "cocok" dengan data baru.

Seperti yang telah Anda lihat, model overfit membuat prediksi yang sangat baik pada set pelatihan, tetapi prediksi yang buruk pada data baru. Model underfit bahkan tidak membuat prediksi yang baik pada data pelatihan. Jika model overfit seperti produk yang berperforma baik di lab, tetapi buruk di dunia nyata, maka model underfit seperti produk yang bahkan tidak berperforma baik di lab.

Gambar 14. Plot Kartesius. Sumbu X diberi label 'kualitas prediksi
            pada set pelatihan'. Sumbu y diberi label 'kualitas prediksi pada
            data dunia nyata'. Kurva dimulai dari asal dan naik secara bertahap,
            tetapi kemudian turun dengan cepat. Bagian kiri bawah kurva
            (kualitas prediksi rendah pada data dunia nyata dan kualitas prediksi rendah
            pada set pelatihan) diberi label 'model underfit'. Bagian
            kanan bawah kurva (kualitas prediksi rendah pada
            data dunia nyata, tetapi kualitas prediksi tinggi pada set pelatihan)
            diberi label 'model overfit'. Puncak kurva (prediksi berkualitas tinggi pada data dunia nyata dan prediksi berkualitas sedang pada set pelatihan) diberi label 'model yang sesuai'.
Gambar 14. Model yang tidak pas, pas, dan overfit.

 

Generalisasi adalah kebalikan dari overfitting. Artinya, model yang digeneralisasi dengan baik akan membuat prediksi yang baik pada data baru. Tujuan Anda adalah membuat model yang menggeneralisasi data baru dengan baik.

Mendeteksi overfitting

Kurva berikut membantu Anda mendeteksi overfitting:

  • kurva penyimpangan
  • kurva generalisasi

Kurva kerugian memetakan kerugian model terhadap jumlah iterasi pelatihan. Grafik yang menunjukkan dua kurva penyimpangan atau lebih disebut kurva generalisasi. Kurva generalisasi berikut menunjukkan dua kurva kerugian:

Gambar 15. Fungsi kerugian untuk set pelatihan menurun secara bertahap. Fungsi kerugian untuk set validasi juga menurun,
            tetapi kemudian mulai naik setelah sejumlah iterasi tertentu.
Gambar 15. Kurva generalisasi yang sangat menyiratkan overfitting.

 

Perhatikan bahwa kedua kurva kerugian berperilaku serupa pada awalnya, lalu menyimpang. Artinya, setelah sejumlah iterasi tertentu, kerugian menurun atau tetap stabil (konvergen) untuk set pelatihan, tetapi meningkat untuk set validasi. Hal ini menunjukkan overfitting.

Sebaliknya, kurva generalisasi untuk model yang cocok menunjukkan dua kurva kerugian yang memiliki bentuk serupa.

Apa yang menyebabkan overfitting?

Secara umum, overfitting disebabkan oleh salah satu atau kedua masalah berikut:

  • Set pelatihan tidak merepresentasikan data dunia nyata secara memadai (atau set validasi atau set pengujian).
  • Model terlalu kompleks.

Kondisi generalisasi

Model dilatih pada set pelatihan, tetapi pengujian sebenarnya dari nilai model adalah seberapa baik model membuat prediksi pada contoh baru, terutama pada data dunia nyata. Saat mengembangkan model, set pengujian Anda berfungsi sebagai proxy untuk data dunia nyata. Melatih model yang dapat digeneralisasi dengan baik menyiratkan kondisi set data berikut:

  • Contoh harus didistribusikan secara independen dan identik, yang merupakan cara keren untuk mengatakan bahwa contoh Anda tidak dapat saling memengaruhi.
  • Set data bersifat stasioner, yang berarti set data tidak berubah secara signifikan dari waktu ke waktu.
  • Partisi set data memiliki distribusi yang sama. Artinya, contoh dalam set pelatihan secara statistik mirip dengan contoh dalam set validasi, set pengujian, dan data dunia nyata.

Pelajari kondisi sebelumnya melalui latihan berikut.

Latihan: Periksa pemahaman Anda

Pertimbangkan partisi set data berikut.
Garis horizontal dibagi menjadi tiga bagian: 70% dari garis
                     adalah set pelatihan, 15% set validasi, dan 15%
                     set pengujian
Apa yang harus Anda lakukan untuk memastikan bahwa contoh dalam set pelatihan memiliki distribusi statistik yang serupa dengan contoh dalam set validasi dan set pengujian?
Acak contoh dalam set data secara ekstensif sebelum mempartisikannya.
Ya. Pengacakan contoh yang baik membuat partisi jauh lebih mungkin serupa secara statistik.
Urutkan contoh dari yang paling awal hingga yang terbaru.
Jika contoh dalam set data tidak statis, pengurutan akan membuat partisi kurang mirip.
Tidak melakukan apa pun. Dengan contoh yang cukup, hukum rata-rata secara alami memastikan bahwa distribusi akan mirip secara statistik.
Sayangnya, hal ini tidak benar. Contoh di bagian tertentu dari set data mungkin berbeda dengan contoh di bagian lain.
Layanan streaming sedang mengembangkan model untuk memprediksi popularitas acara televisi baru yang potensial selama tiga tahun ke depan. Layanan streaming ini berencana untuk melatih model pada set data yang berisi ratusan juta contoh, yang mencakup sepuluh tahun sebelumnya. Apakah model ini akan mengalami masalah?
Mungkin. Selera penonton berubah dengan cara yang tidak dapat diprediksi oleh perilaku sebelumnya.
Ya. Selera penonton tidak statis. Hal ini terus berubah.
Tentu saja tidak. Set data cukup besar untuk membuat prediksi yang baik.
Sayangnya, selera penonton tidak statis.
Mungkin tidak. Selera penonton berubah secara siklus yang dapat diprediksi. Data sepuluh tahun akan memungkinkan model membuat prediksi yang baik tentang tren mendatang.
Meskipun aspek tertentu dari hiburan bersifat siklus, model yang dilatih dari histori hiburan sebelumnya hampir pasti akan mengalami kesulitan dalam membuat prediksi tentang beberapa tahun ke depan.
Model ini bertujuan untuk memprediksi waktu yang diperlukan orang untuk berjalan sejauh satu mil berdasarkan data cuaca (suhu, titik embun, dan presipitasi) yang dikumpulkan selama satu tahun di kota yang cuacanya bervariasi secara signifikan menurut musim. Dapatkah Anda membuat dan menguji model dari set data ini, meskipun pembacaan cuaca berubah secara drastis menurut musim?
Ya
Ya, Anda dapat membuat dan menguji model dari set data ini. Anda hanya perlu memastikan bahwa data dipartisi secara merata, sehingga data dari keempat musim didistribusikan secara merata ke dalam partisi yang berbeda.
Tidak
Dengan asumsi set data ini berisi cukup contoh suhu, titik embun, dan presipitasi, Anda dapat mem-build dan menguji model dari set data ini. Anda hanya perlu memastikan bahwa data dipartisi secara merata, sehingga data dari keempat musim didistribusikan secara merata ke dalam partisi yang berbeda.

Latihan tantangan

Anda membuat model yang memprediksi tanggal ideal bagi penumpang untuk membeli tiket kereta untuk rute tertentu. Misalnya, model mungkin merekomendasikan pengguna untuk membeli tiket pada 8 Juli untuk kereta yang berangkat 23 Juli. Perusahaan kereta memperbarui harga setiap jam, dengan mendasarkan pembaruan pada berbagai faktor, tetapi terutama pada jumlah kursi yang tersedia saat ini. Definisinya yaitu:

  • Jika banyak kursi yang tersedia, harga tiket biasanya rendah.
  • Jika hanya sedikit kursi yang tersedia, harga tiket biasanya tinggi.
Model Anda menunjukkan rugi rendah pada set validasi dan set pengujian, tetapi terkadang membuat prediksi yang buruk pada data dunia nyata. Mengapa?
Klik di sini untuk melihat jawabannya