Mengenal Overfitting Machine Learning dan Solusinya

Overfitting machine learning terjadi ketika model “menghafal” data pelatihan sehingga kinerjanya buruk pada data baru. Artikel ini menjelaskan perbedaan dengan underfitting, tanda-tanda umum, dan cara praktis untuk menghindari masalah tersebut. 

Artikel ini dapat dibaca oleh kamu yang ingin memahami akar masalah dan menerapkan perbaikan sederhana pada pipeline machine learning mereka.

Overfitting Machine Learning dan Contoh Kasusnya

💻 Mulai Belajar Pemrograman

Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.

Daftar Sekarang

Overfitting adalah kondisi ketika model machine learning terlalu menyesuaikan diri dengan data pelatihan, sampai ikut “menghafal” noise dan pola kebetulan. Secara teknis, model punya training loss sangat rendah, tetapi validation loss tinggi.

Bagaimana menghindari overfitting machine learning? Gunakan teknik seperti regularization, cross-validation, dan early stopping, serta pilih model yang tidak terlalu kompleks untuk ukuran dataset. Mari mulai dari definisi dan contoh agar langkah pencegahan lebih mudah dipahami.

Tanda klasik overfitting dalam metrik: akurasi pada data pelatihan sangat tinggi, tetapi akurasi dalam data validasi turun tajam. Misalnya, polynomial regression derajat 12 untuk data yang sebenarnya hampir linear. Kurva akan mengikuti tiap titik pelatihan dengan ekstrem, tetapi prediksi pada titik baru menjadi buruk.

Contoh lain, decision tree yang dibiarkan tumbuh sangat dalam tanpa pruning. Setiap kombinasi fitur bisa punya aturan sendiri sehingga model menghafal contoh spesifik, bukan belajar pola umum. Secara konseptual, bayangkan garis batas kelas yang berkelok-kelok mengikuti setiap titik pelatihan, bukan garis halus pemisah mayoritas data.

Alasan Model Bisa Terlalu Mengingat Data dan Faktor Penyebab

Model cenderung menghafal saat data latih terlalu sedikit, tetapi jumlah parameter sangat besar. Kombinasi ini membuat model “menyatu” dengan noise alih-alih pola umum. Fitur yang berisik atau tidak relevan juga mendorong model mengejar sinyal palsu.

Model parametric seperti linear regression punya jumlah parameter tetap sehingga relatif lebih terkendali. Model non-parametric seperti random forest atau KNN bisa tumbuh kompleks seiring data, dan jika tidak dibatasi, mudah sekali overfit.

Kebocoran data (data leakage) terjadi misalnya ketika fitur sudah mengandung label masa depan, seperti kolom “status_pelunasan” dipakai untuk memprediksi gagal bayar. Model tampak sangat akurat dalam validation, tetapi hancur dalam produksi karena informasi “bocor” itu tidak tersedia di dunia nyata.

Untuk diagnosis cepat, kamu bisa cek learning curve: bila train loss sangat rendah, tapi validation loss tinggi, itu sinyal kuat overfit. Bandingkan juga sebaran prediksi dalam data latih versus validasi; varians yang jauh berbeda sering berarti model terlalu menempel pada data latih.

Teknik Regularisasi, Cross Validation, dan Early Stopping

Untuk mencegah model “menghafal”, kamu bisa menambah penalty pada bobot lewat L1/L2 regularization

L2 cocok sebagai default dalam banyak model, misalnya linear model atau neural network, dengan hyperparameter umum lambda/weight_decay pada kisaran 1e-5 sampai 1e-2. L1 lebih agresif membuat bobot jadi nol, bagus untuk feature selection, tetapi bisa menurunkan akurasi jika fitur sedikit.

Pada neural network, dropout dan pruning juga penting. Dropout menjatuhkan sebagian neuron saat training, misalnya dropout=0.1–0.5 sehingga model tidak bergantung pada pola sempit. Pruning membuang koneksi atau neuron yang kurang penting setelah atau selama training, mengurangi ukuran model dengan risiko sedikit penurunan akurasi demi efisiensi.

k-fold cross-validation membantu menilai bahwa model benar-benar stabil dalam berbagai split data. Umumnya digunakan k=5 atau k=10, lalu kamu lihat rata-rata skor dan standard deviation-nya. Pilih kombinasi model dan hyperparameter dengan skor rata-rata tinggi serta variasi antar fold kecil, bukan yang hanya punya skor maksimum tertinggi.

Early stopping menghentikan training saat validation loss tidak membaik lagi. Contoh umum: gunakan patience 5–10 epoch dan simpan checkpoint terbaik berdasarkan validation metric

Konsekuensinya, model mungkin sedikit kurang optimal pada data latih, tetapi biasanya jauh lebih baik saat diuji dalam data baru, yang akan kamu evaluasi lebih detail pada bagian berikutnya.

Praktik Evaluasi Model untuk Meningkatkan Generalization

Untuk mencegah model menghafal data, kuncinya adalah evaluasi pada data yang belum pernah dilihat. Mulai dari split data yang jelas: train untuk belajar, validation untuk tuning, dan test yang benar-benar disimpan untuk akhir. Jangan pakai test set saat memilih hyperparameter karena itu diam-diam membuat model overfit pada metrik.

Buat juga learning curve: plot loss atau accuracy pada train dan validation terhadap jumlah data atau epoch. Pola klasik: train loss turun, tapi validation loss naik tajam, ini sinyal kuat overfitting. Di sini kamu bisa uji dampak regularization, dropout, atau data augmentation dan lihat langsung pengaruhnya pada kurva.

Gunakan ablation study untuk memahami bagian dari pipeline yang benar-benar membantu generalization. Misalnya, bandingkan model sederhana versus kompleks dengan eksperimen terkontrol.

  • Model A: baseline sederhana, sedikit layer, tanpa augmentation.
  • Model B: arsitektur lebih dalam dengan data augmentation dan weight decay.

Jika Model B jauh lebih bagus dalam training, tapi tidak pada validation, kompleksitasnya berlebihan. Dari sini, kamu bisa kurangi ukuran model, tambah regularization, atau perkuat augmentation.

Perhatikan ceklis praktis dalam pipeline: pastikan preprocessing konsisten antara train/val/test, terapkan data augmentation hanya pada training, dan monitor overfit selama training dengan callback. Berikut adalah contoh sederhana pada Python.


Dengan pola ini, kamu bisa melihat tanda overfitting lebih cepat dan langsung menguji perbaikan dalam pipeline berikutnya.

Penutup

Intinya: pahami tanda overfitting sejak dini, gunakan evaluasi pada data yang tidak terlihat, dan terapkan teknik seperti regularization atau cross-validation. Dengan langkah terstruktur, model akan lebih stabil dan dapat diandalkan dalam kondisi nyata. Terapkan ceklis praktis yang telah dibahas untuk melihat perbaikan cepat pada pipeline Anda.


Belajar Pemrograman Gratis
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.