Memahami Overfitting dan Underfitting dalam Machine Learning
Dalam dunia Machine Learning, tujuan utama dari sebuah model adalah mampu mempelajari pola dari data dan membuat prediksi yang akurat pada data baru. Namun dalam praktiknya, tidak semua model dapat mencapai tujuan ini dengan baik. Ada dua masalah klasik yang sering muncul dalam proses pelatihan model, yaitu overfitting dan underfitting.
Memahami kedua konsep ini sangat penting karena keduanya berkaitan langsung dengan kemampuan generalisasi model, yaitu kemampuan model untuk bekerja dengan baik tidak hanya pada data pelatihan, tetapi juga pada data yang belum pernah dilihat sebelumnya.
Artikel ini akan membahas secara komprehensif mengenai apa itu overfitting dan underfitting, bagaimana keduanya terjadi, bagaimana mengenalinya, serta bagaimana cara mengatasinya.
Konsep Dasar Generalisasi Model
Sebelum memahami overfitting dan underfitting, penting untuk memahami konsep generalisasi model.
Dalam Machine Learning, dataset biasanya dibagi menjadi dua bagian utama:
Training Data
Data yang digunakan untuk melatih model agar mengenali pola.Testing Data
Data yang digunakan untuk menguji kemampuan model dalam memprediksi data yang belum pernah dilihat sebelumnya.Model yang baik adalah model yang:
memiliki error kecil pada data training
dan juga error kecil pada data testing
Jika hanya bagus pada training tetapi buruk pada testing, maka model mengalami overfitting.
Sebaliknya, jika model buruk pada keduanya, maka model mengalami underfitting.
Underfitting: Ketika Model Terlalu Sederhana
Pengertian Underfitting
Underfitting terjadi ketika model terlalu sederhana sehingga tidak mampu menangkap pola yang ada dalam data. Akibatnya, model menghasilkan performa yang buruk baik pada data training maupun data testing.
Dengan kata lain, model belum belajar dengan cukup baik dari data yang tersedia.
Contoh Kasus Underfitting
Misalkan kita memiliki dataset untuk memprediksi harga rumah berdasarkan luas tanah.
Hubungan sebenarnya mungkin berbentuk kurva seperti ini:
Harga Rumah
|
| *
| * *
| *
| *
|_________________
Luas TanahNamun kita menggunakan model linear sederhana, misalnya:
Model ini mungkin menghasilkan garis lurus seperti ini:
Harga Rumah
|
| *
| *
| *
| *
| *
|_________________
Luas TanahKarena hubungan sebenarnya tidak linear, model linear tersebut tidak mampu menangkap pola sebenarnya, sehingga prediksi menjadi kurang akurat.
Inilah yang disebut underfitting.
Ciri-ciri Underfitting
Beberapa tanda bahwa model mengalami underfitting:
Error pada training data tinggi
Error pada testing data juga tinggi
Model terlalu sederhana
Model gagal mempelajari pola dasar data
Penyebab Underfitting
Beberapa penyebab umum underfitting antara lain:
Model terlalu sederhana
Jumlah fitur terlalu sedikit
Proses training terlalu singkat
Regularisasi terlalu kuat
Dataset terlalu kompleks untuk model yang digunakan
Overfitting: Ketika Model Terlalu Menghafal Data
Pengertian Overfitting
Berbeda dengan underfitting, overfitting terjadi ketika model terlalu kompleks dan terlalu menyesuaikan diri dengan data training.
Model tidak hanya mempelajari pola yang penting, tetapi juga menghafal noise atau data yang tidak relevan.
Akibatnya:
performa pada training data sangat baik
tetapi performa pada testing data buruk
Model tidak mampu melakukan generalisasi.
Contoh Kasus Overfitting
Misalkan kita memiliki dataset kecil untuk memprediksi harga rumah.
Jika kita menggunakan model yang sangat kompleks, misalnya polynomial degree tinggi, model bisa membentuk kurva yang mengikuti semua titik data.
Harga Rumah
|
| * *
| * *
| * * *
|_________________
Luas TanahModel akan menghasilkan kurva yang berliku-liku seperti ini:
Harga Rumah
|
| ~~~~*~~~~
| ~~ ~~
| * *
|_________________
Luas TanahModel ini sangat cocok dengan training data, tetapi ketika diberikan data baru, prediksinya bisa sangat melenceng.
Ini disebut overfitting.
Ciri-ciri Overfitting
Beberapa indikasi overfitting antara lain:
Error pada training data sangat kecil
Error pada testing data jauh lebih besar
Model terlalu kompleks
Model sensitif terhadap perubahan kecil pada data
Penyebab Overfitting
Beberapa penyebab umum overfitting antara lain:
Model terlalu kompleks
Dataset terlalu kecil
Terlalu banyak fitur
Terlalu lama melakukan training
Tidak menggunakan regularisasi
Perbandingan Overfitting dan Underfitting
Aspek Underfitting Overfitting Kompleksitas model Terlalu sederhana Terlalu kompleks Error training Tinggi Sangat rendah Error testing Tinggi Tinggi Kemampuan generalisasi Buruk Buruk Penyebab utama Model tidak mampu menangkap pola Model menghafal data
Ilustrasi Konsep Bias dan Variance
Overfitting dan underfitting juga berkaitan dengan konsep bias dan variance.
Underfitting → Bias tinggi
Model terlalu sederhana sehingga menghasilkan kesalahan sistematis.
Overfitting → Variance tinggi
Model terlalu sensitif terhadap data training.
Tujuan utama dalam Machine Learning adalah menemukan keseimbangan antara bias dan variance.
Cara Mengatasi Underfitting
Beberapa cara untuk mengatasi underfitting:
Menggunakan model yang lebih kompleks
Menambahkan fitur yang relevan
Mengurangi regularisasi
Melatih model lebih lama
Menggunakan algoritma yang lebih powerful
Cara Mengatasi Overfitting
Untuk mengatasi overfitting, beberapa teknik yang umum digunakan adalah:
1. Menambah Data Training
Semakin banyak data, semakin kecil kemungkinan model menghafal data.
2. Regularisasi
Menambahkan penalti pada kompleksitas model, misalnya:
L1 Regularization
L2 Regularization
3. Cross Validation
Digunakan untuk mengevaluasi model secara lebih robust.
4. Feature Selection
Menghapus fitur yang tidak relevan.
5. Dropout (pada Neural Network)
Menghilangkan sebagian neuron secara acak saat training.
Kesimpulan
Overfitting dan underfitting merupakan dua permasalahan fundamental dalam Machine Learning yang berkaitan dengan kemampuan model dalam melakukan generalisasi terhadap data baru.
Underfitting terjadi ketika model terlalu sederhana sehingga tidak mampu mempelajari pola dalam data.
Overfitting terjadi ketika model terlalu kompleks dan justru menghafal data training.
Model yang ideal adalah model yang berada di titik keseimbangan antara kompleksitas dan kemampuan generalisasi. Oleh karena itu, proses pengembangan model Machine Learning tidak hanya berfokus pada peningkatan akurasi training, tetapi juga pada kemampuan model dalam bekerja secara konsisten pada data yang belum pernah dilihat sebelumnya.
Memahami konsep ini merupakan langkah penting bagi siapa pun yang ingin mengembangkan model Machine Learning yang akurat, robust, dan dapat digunakan dalam aplikasi nyata.