Apa itu Overfitting Dalam Machine Learning dan Bagaimana Menghindarinya?



Artikel ini membahas Overfitting di Machine Learning dengan contoh dan beberapa teknik untuk menghindari, mendeteksi Overfitting dalam model machine learning.

Membangun model Machine Learning tidak hanya tentang memberi makan data, ada banyak kekurangan yang memengaruhi keakuratan model apa pun. Overfitting in adalah salah satu kekurangan dalam Machine Learning yang menghambat keakuratan serta performa model. Topik berikut ini dibahas dalam artikel ini:

Apa itu Overfitting In Machine Learning?

Model statistik dikatakan overfitted ketika kita memberinya lebih banyak data daripada yang diperlukan. Untuk membuatnya menarik, bayangkan mencoba mengenakan pakaian yang terlalu besar.





Saat model memenuhi lebih banyak data daripada yang sebenarnya dibutuhkan, model tersebut mulai menangkap data yang berisik dan nilai yang tidak akurat dalam data. Akibatnya, efisiensi dan akurasi model menurun. Mari kita lihat beberapa contoh overfitting untuk memahami bagaimana sebenarnya terjadi.



Contoh Overfitting

Contoh 1

Jika kita ambil contoh sederhana regresi linier , melatih data adalah tentang mencari tahu biaya minimum antara garis yang paling sesuai dan titik data. Ini melalui sejumlah iterasi untuk mengetahui kecocokan optimal yang optimal, meminimalkan biaya. Di sinilah overfitting masuk ke dalam gambar.



Garis yang terlihat pada gambar di atas dapat memberikan hasil yang sangat efisien untuk titik data baru. Dalam kasus overfitting, saat kami menjalankan algoritme pelatihan pada kumpulan data, kami mengizinkan pengurangan biaya dengan setiap jumlah iterasi.

Menjalankan ini untuk waktu yang terlalu lama akan mengurangi biaya tetapi juga akan menyesuaikan dengan data berisik dari kumpulan data. Hasilnya akan terlihat seperti pada grafik di bawah ini.

Ini mungkin terlihat efisien tetapi sebenarnya tidak. Tujuan utama dari suatu algoritma seperti regresi linier adalah menemukan tren dominan dan menyesuaikan poin data dengan tepat. Namun dalam kasus ini, garis tersebut cocok untuk semua titik data, yang tidak relevan dengan efisiensi model dalam memprediksi hasil optimal untuk titik data entri baru.

Sekarang mari kita pertimbangkan contoh yang lebih deskriptif dengan bantuan pernyataan masalah.

Contoh 2

Pernyataan masalah: Mari kita pertimbangkan bahwa kita ingin memprediksi apakah seorang pemain sepak bola akan mendapatkan slot di klub sepak bola tingkat 1 berdasarkan kinerjanya saat ini di liga tingkat 2.

Sekarang bayangkan, kami melatih dan menyesuaikan model dengan 10.000 pemain dengan hasil. Ketika kami mencoba memprediksi hasil pada kumpulan data asli, katakanlah kami mendapat akurasi 99%. Tetapi akurasi pada kumpulan data yang berbeda mencapai sekitar 50 persen. Ini berarti model tidak tergeneralisasi dengan baik dari data pelatihan dan data tak terlihat kami.

Seperti inilah tampilan overfitting. Ini adalah masalah yang sangat umum dalam Machine Learning dan bahkan ilmu data. Sekarang mari kita pahami sinyal dan noise.

Sinyal vs Kebisingan

Dalam pemodelan prediktif, sinyal mengacu pada pola dasar yang sebenarnya yang membantu model mempelajari data. Di sisi lain, noise tidak relevan dan data acak dalam kumpulan data. Untuk memahami konsep kebisingan dan sinyal, mari kita ambil contoh kehidupan nyata.

Misalkan kita ingin mencontohkan usia vs melek huruf di antara orang dewasa. Jika kita mengambil sampel sebagian besar populasi, kita akan menemukan hubungan yang jelas. Ini adalah sinyalnya, sedangkan noise mengganggu sinyalnya. Jika kita melakukan hal yang sama pada penduduk lokal, hubungan akan menjadi keruh. Ini akan dipengaruhi oleh pencilan dan keacakan, misalnya, satu orang dewasa pergi ke sekolah lebih awal atau beberapa orang dewasa tidak mampu membiayai pendidikan, dll.

Berbicara tentang noise dan sinyal dalam istilah Machine Learning, algoritma Machine Learning yang baik akan secara otomatis memisahkan sinyal dari noise tersebut. Jika algoritme terlalu kompleks atau tidak efisien, algoritme mungkin mempelajari noise juga. Karenanya, model terlalu pas. Mari kita juga memahami underfitting dalam Machine Learning.

Apa itu Underfitting?

Untuk menghindari overfitting, kita bisa menghentikan pelatihan di tahap awal. Namun, hal itu juga dapat menyebabkan model tidak dapat cukup belajar dari data pelatihan, sehingga mungkin kesulitan untuk menangkap tren yang dominan. Ini dikenal sebagai underfitting. Hasilnya sama dengan overfitting, inefisiensi dalam memprediksi hasil.

Sekarang setelah kita memahami apa itu underfitting dan overfitting dalam Machine Learning, mari kita coba memahami bagaimana kita dapat mendeteksi overfitting dalam Machine Learning.

Bagaimana Cara Mendeteksi Overfitting?

Tantangan utama overfitting adalah memperkirakan keakuratan performa model kami dengan data baru. Kami tidak akan dapat memperkirakan keakuratan sampai kami benar-benar mengujinya.

Untuk mengatasi masalah ini, kita dapat membagi kumpulan data awal menjadi kumpulan data pelatihan dan pengujian yang terpisah. Dengan teknik ini, kami sebenarnya dapat memperkirakan seberapa baik performa model kami dengan data baru.

Mari kita pahami ini dengan sebuah contoh, bayangkan kita mendapatkan akurasi 90+ ​​persen pada set latihan dan 50 persen akurasi pada set tes. Kemudian, secara otomatis itu akan menjadi bendera merah untuk model tersebut.

Cara lain untuk mendeteksi overfitting adalah memulai dengan model sederhana yang akan berfungsi sebagai tolok ukur.

Dengan pendekatan ini, jika Anda mencoba algoritme yang lebih kompleks, Anda akan dapat memahami apakah kerumitan tambahan itu bermanfaat untuk model atau tidak. Itu juga dikenal sebagai Tes pisau cukur Occam , pada dasarnya memilih model sederhana dalam hal kinerja yang sebanding dalam kasus dua model. Meskipun mendeteksi overfitting adalah praktik yang baik,tetapi ada beberapa teknik untuk mencegah overfitting juga. Mari kita lihat bagaimana kami dapat mencegah overfitting dalam Machine Learning.

Bagaimana Cara Menghindari Overfitting Dalam Machine Learning?

Ada beberapa teknik untuk menghindari overfitting dalam Machine Learning yang tercantum di bawah ini.

  1. Validasi silang

  2. Pelatihan Dengan Lebih Banyak Data

  3. Menghapus Fitur

  4. Penghentian Awal

  5. Regularisasi

  6. Ensembling

1. Validasi Silang

Salah satu fitur paling kuat untuk menghindari / mencegah overfitting adalah validasi silang. Ide di baliknya adalah menggunakan data pelatihan awal untuk membuat mini train-test-split, lalu menggunakan pemisahan ini untuk menyesuaikan model Anda.

Dalam validasi k-fold standar, data dipartisi menjadi k-subset yang juga dikenal sebagai lipatan. Setelah ini, algoritme dilatih secara iteratif pada lipatan k-1 sambil menggunakan lipatan yang tersisa sebagai set pengujian, yang juga dikenal sebagai lipatan pisahan.

Validasi silang membantu kita menyesuaikan hyperparameter hanya dengan set pelatihan asli. Ini pada dasarnya membuat set pengujian secara terpisah sebagai kumpulan data yang benar-benar tidak terlihat untuk memilih model akhir. Karenanya, hindari overfitting sama sekali.

2. Pelatihan Dengan Lebih Banyak Data

Teknik ini mungkin tidak berhasil setiap saat, seperti yang juga telah kita diskusikan dalam contoh di atas, di mana pelatihan dengan jumlah populasi yang signifikan membantu model tersebut. Ini pada dasarnya membantu model dalam mengidentifikasi sinyal dengan lebih baik.

Namun dalam beberapa kasus, peningkatan data juga dapat berarti memberikan lebih banyak noise ke model. Saat kita melatih model dengan lebih banyak data, kita harus memastikan datanya bersih dan bebas dari keacakan dan inkonsistensi.

3. Menghapus Fitur

Meskipun beberapa algoritme memiliki fitur pemilihan otomatis. Untuk sejumlah besar dari mereka yang tidak memiliki pemilihan fitur bawaan, kami dapat secara manual menghapus beberapa fitur yang tidak relevan dari fitur masukan untuk meningkatkan generalisasi.

Salah satu cara untuk melakukannya adalah dengan mengambil kesimpulan tentang bagaimana suatu fitur cocok dengan model. Ini sangat mirip dengan men-debug kode baris demi baris.

Jika suatu fitur tidak dapat menjelaskan relevansi dalam model, kami dapat dengan mudah mengidentifikasi fitur tersebut. Kami bahkan dapat menggunakan beberapa heuristik pemilihan fitur untuk titik awal yang baik.

4. Penghentian Awal

Saat model menjalani pelatihan, Anda sebenarnya dapat mengukur seberapa baik performa model berdasarkan setiap iterasi. Kami dapat melakukan ini sampai suatu titik ketika iterasi meningkatkan kinerja model. Setelah ini, model menyesuaikan data pelatihan karena generalisasi melemah setelah setiap iterasi.

Jadi pada dasarnya, penghentian awal berarti menghentikan proses pelatihan sebelum model melewati titik di mana model mulai menyesuaikan data pelatihan. Teknik ini banyak digunakan di pembelajaran mendalam .

5. Regularisasi

Ini pada dasarnya berarti, secara artifisial memaksa model Anda menjadi lebih sederhana dengan menggunakan berbagai teknik yang lebih luas. Itu sepenuhnya tergantung pada jenis pelajar yang kita gunakan. Misalnya, kita dapat memangkas file , gunakan dropout di jaringan syaraf atau tambahkan parameter penalti ke fungsi biaya dalam regresi.

Regularisasi juga sering menjadi hyperparameter. Artinya, ini juga dapat disetel melalui validasi silang.

6. Ensembling

Teknik ini pada dasarnya menggabungkan prediksi dari berbagai model Machine Learning. Dua dari metode ansambel yang paling umum tercantum di bawah ini:

  • Bagging mencoba untuk mengurangi kemungkinan model overfitting

  • Meningkatkan upaya untuk meningkatkan fleksibilitas prediktif model yang lebih sederhana

Meskipun keduanya adalah metode ensembel, pendekatannya benar-benar dimulai dari arah yang berlawanan. Bagging menggunakan model dasar yang kompleks dan mencoba memuluskan prediksinya sementara penguat menggunakan model dasar sederhana dan mencoba meningkatkan kompleksitas agregatnya.

Apa itu Goodness Of Fit?

Dalam pemodelan statistik, goodness of fit mengacu pada seberapa dekat hasil atau nilai yang diprediksi cocok dengan nilai yang diamati atau nilai sebenarnya.Model yang telah mempelajari derau alih-alih sinyal akan diganti karena akan sesuai dengan kumpulan data pelatihan tetapi akan memiliki efisiensi yang lebih buruk dengan kumpulan data baru.

Trade-off Antara Bias Dan Varians

Varians dan bias adalah bentuk kesalahan prediksi dalam . Pertukaran antara varian tinggi dan bias tinggi adalah konsep yang sangat penting dalam statistik dan Pembelajaran Mesin. Ini adalah salah satu konsep yang memengaruhi semua algoritme Machine Learning yang diawasi.

Kompromi bias-varians memiliki dampak yang sangat signifikan dalam menentukan kompleksitas, underfitting, dan overfitting untuk model Machine Learning apa pun.

Bias

Ini tidak lain adalah perbedaan antara nilai yang diprediksi dan nilai aktual atau sebenarnya dalam model. Tidak selalu mudah bagi model untuk belajar dari sinyal yang agak rumit.

Mari kita bayangkan pas a regresi linier ke model dengan data non-linier. Tidak peduli seberapa efisien model mempelajari pengamatan, itu tidak akan memodelkan kurva secara efisien. Ini dikenal sebagai underfitting.

Perbedaan

Ini merujuk pada sensitivitas model terhadap set tertentu dalam data pelatihan. Algoritme varian tinggi akan menghasilkan model aneh yang sangat berbeda dari set pelatihan.

penanganan file dalam contoh java

Bayangkan sebuah algoritma yang cocok dengan model yang tidak dibatasi dan super-fleksibel, itu juga akan belajar dari kebisingan dalam set pelatihan yang menyebabkan overfitting.

Pertukaran Bias-Varians

Algoritme Pembelajaran Mesin tidak dapat dianggap sebagai metode satu kali untuk melatih model, sebagai gantinya, ini adalah proses yang berulang.

Algoritme bias rendah varians-tinggi kurang kompleks, dengan struktur yang sederhana dan kaku.

  • Mereka akan melatih model yang konsisten, tetapi rata-rata tidak akurat.

  • Ini termasuk algoritma linier atau parametrik, seperti regresi, , dll.

Algoritme bias varians-rendah cenderung lebih kompleks, dengan struktur yang fleksibel.

  • Mereka akan melatih model yang tidak konsisten tetapi rata-rata akurat.

  • Ini termasuk algoritma non-linier atau non-parametrik seperti , , dll.

Ini membawa kita ke akhir artikel ini di mana kita telah mempelajari Overfitting dalam Machine learning dan tentang berbagai teknik untuk menghindarinya. Saya harap Anda jelas dengan semua yang telah dibagikan dengan Anda dalam tutorial ini.

Jika Anda merasa artikel tentang 'Overfitting In Machine Learning' ini relevan, lihat perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar puas yang tersebar di seluruh dunia.

Kami di sini untuk membantu Anda dengan setiap langkah dalam perjalanan Anda dan menghasilkan kurikulum yang dirancang untuk siswa dan profesional yang ingin menjadi . Kursus ini dirancang untuk memberi Anda permulaan dalam pemrograman Python dan melatih Anda untuk konsep inti dan lanjutan Python bersama dengan berbagai Suka , , dll.

Jika Anda menemukan pertanyaan apa pun, jangan ragu untuk mengajukan semua pertanyaan Anda di bagian komentar 'Overfitting In Machine Learning' dan tim kami akan dengan senang hati menjawabnya.