Mencegah data overfitting dan tidak seimbang dengan ML Otomatis

Data yang terlalu fokus dan tidak seimbang adalah jebakan umum saat Anda membangun model pembelajaran mesin. Secara default, ML Otomatis Azure Machine Learning menyediakan bagan dan metrik untuk membantu Anda mengidentifikasi risiko ini, dan menerapkan praktik terbaik untuk membantu menguranginya.

Mengidentifikasi data yang terlalu fokus

Data yang terlalu fokus dalam pembelajaran mesin terjadi ketika model terlalu cocok dengan data pelatihan, dan hasilnya tidak dapat memprediksi dengan tepat data pengujian yang tidak telihat. Dengan kata lain, model telah menghafal pola dan kebisingan tertentu dalam data pelatihan, tetapi tidak cukup fleksibel untuk membuat prediksi pada data nyata.

Pertimbangkan model terlatih berikut dan akurasi pelatihan dan pengujian yang sesuai.

Model Akurasi pelatihan Akurasi pengujian
A 99,9% 95%
B 87% 87%
C 99,9% 45%

Pertimbangkan model A, ada kesalahpahaman umum bahwa jika akurasi pengujian pada data yang tidak terlihat lebih rendah daripada akurasi pelatihan, model terlalu fokus. Namun, akurasi pengujian harus selalu kurang dari akurasi pelatihan, dan perbedaan untuk terlalu fokus vs. fokus yang sesuai terdapat pada seberapa kurang akurat.

Bandingkan model A dan B, model A adalah model yang lebih baik karena memiliki akurasi pengujian yang lebih tinggi, dan meskipun akurasi pengujian sedikit lebih rendah pada 95%, itu bukan perbedaan signifikan yang menunjukkan overfitting ada. Anda tidak akan memilih model B karena akurasi pelatihan dan pengujian lebih dekat bersama-sama.

Model C mewakili kasus overfitting yang jelas; akurasi pelatihan tinggi tetapi akurasi pengujian tidak dekat dengan tinggi. Perbedaan ini bersifat subjektif, tetapi berasal dari pengetahuan tentang masalah dan data Anda, serta besarnya kesalahan yang dapat diterima.

Mencegah overfitting

Dalam kasus yang paling mengerikan, model overfitted mengasumsikan bahwa kombinasi nilai fitur yang terlihat selama pelatihan selalu menghasilkan output yang sama persis untuk target.

Cara terbaik untuk mencegah overfitting adalah dengan mengikuti praktik terbaik ML termasuk:

  • Menggunakan lebih banyak data pelatihan, dan menghilangkan bias statistik
  • Mencegah kebocoran target
  • Menggunakan lebih sedikit fitur
  • Regularisasi dan pengoptimalan hyperparameter
  • Batasan kompleksitas model
  • Validasi silang

Dalam konteks ML Otomatis, tiga cara pertama mencantumkan praktik terbaik yang Anda terapkan. Tiga item tebal terakhir adalah praktik terbaik Implementasi ML otomatis secara default untuk melindungi dari overfitting. Dalam pengaturan selain ML Otomatis, keenam praktik terbaik layak diikuti untuk menghindari model yang terlalu pas.

Praktik terbaik yang Anda terapkan

Gunakan lebih banyak data

Menggunakan lebih banyak data adalah cara paling sederhana dan terbaik untuk mencegah data terlalu fokus dan sebagai bonus tambahan biasanya meningkatkan akurasi. Ketika Anda menggunakan lebih banyak data, menjadi lebih sulit bagi model untuk menghafal pola yang tepat, dan memaksanya untuk menjangkau solusi yang lebih fleksibel untuk mengakomodasi lebih banyak kondisi. Penting juga untuk mengenali bias statistik, untuk memastikan data pelatihan Anda tidak menyertakan pola terisolasi yang tidak ada dalam data prediksi langsung. Skenario ini bisa sulit dipecahkan, karena mungkin ada overfitting jika dibandingkan dengan data pengujian langsung.

Mencegah kebocoran target

Kebocoran target adalah masalah serupa, di mana Anda mungkin tidak melihat data terlalu fokus antara set pelatihan/pengujian, melainkan muncul pada prediksi-waktu. Kebocoran target terjadi ketika model Anda "curang" selama pelatihan dengan memiliki akses ke data yang biasanya tidak dimiliki pada waktu prediksi. Misalnya, untuk memprediksi pada hari Senin berapa harga komoditas pada hari Jumat, jika fitur Anda secara tidak sengaja menyertakan data dari kamis, itu akan menjadi data yang tidak akan dimiliki model pada waktu prediksi karena tidak dapat melihat ke masa depan. Kebocoran target adalah kesalahan mudah untuk dilewatkan, tetapi sering ditandai dengan akurasi tinggi abnormal untuk masalah Anda. Jika Anda mencoba memprediksi harga saham dan melatih model dengan akurasi 95%, kemungkinan ada kebocoran target di suatu tempat di fitur Anda.

Gunakan lebih sedikit fitur

Menghapus fitur juga dapat membantu menangani data terlalu fokus dengan mencegah model memiliki terlalu banyak bidang yang digunakan untuk menghafal pola tertentu, sehingga menyebabkannya lebih fleksibel. Mungkin sulit untuk mengukur secara kuantitatif, tetapi jika Anda dapat menghapus fitur dan mempertahankan akurasi yang sama, Anda mungkin telah membuat model lebih fleksibel dan telah mengurangi risiko data yang terlalu fokus.

Praktik terbaik Penerapan ML otomatis

Regularisasi dan penyetelan hyperparameter

Regularisasi adalah proses meminimalkan fungsi biaya untuk menghukum model yang kompleks dan terlalu fokus. Ada berbagai jenis fungsi regularisasi, tetapi secara umum semuanya menghukum ukuran koefisien model, varians, dan kompleksitas. Pembelajaran Mesin otomatis menggunakan L1 (Lasso), L2 (Ridge), dan ElasticNet (L1 dan L2 secara bersamaan) dalam kombinasi yang berbeda dengan pengaturan hiperparameter model berbeda yang mengontrol data terlalu fokus. ML otomatis bervariasi berapa banyak model yang diatur dan memilih hasil terbaik.

Batasan kompleksitas model

Pembelajaran Mesin otomatis juga menerapkan batasan kompleksitas model eksplisit untuk mencegah data terlalu fokus. Dalam kebanyakan kasus, implementasi ini khusus untuk algoritma pohon keputusan atau hutan, di mana kedalaman maks pohon individu terbatas, dan jumlah total pohon yang digunakan dalam teknik hutan atau ansambel terbatas.

Validasi silang

Validasi silang (CV) adalah proses mengambil banyak subset dari data pelatihan lengkap Anda dan melatih model pada setiap subset. Idenya adalah bahwa model bisa "beruntung" dan memiliki akurasi yang besar dengan satu subset, tetapi dengan menggunakan banyak subset model tidak akan mencapai akurasi tinggi ini setiap saat. Saat melakukan CV, Anda menyediakan himpunan data holdout validasi, menentukan lipatan CV Anda (jumlah subset) dan ML Otomatis melatih model Anda dan menyetel hiperparameter untuk meminimalkan kesalahan pada set validasi Anda. Satu lipatan CV bisa terlalu fokus, tetapi dengan menggunakan banyak lipatan CV akan mengurangi kemungkinan model akhir Anda terlalu fokus. Tradeoff adalah bahwa CV menghasilkan waktu pelatihan yang lebih lama dan biaya yang lebih besar, karena Anda melatih model sekali untuk setiap n di subset CV.

Catatan

Validasi silang tidak diaktifkan secara default; harus dikonfigurasi dalam Pengaturan pembelajaran mesin otomatis. Namun, setelah validasi silang dikonfigurasi dan himpunan data validasi telah disediakan, prosesnya otomatis untuk Anda.

Identifikasi model dengan data tidak seimbang

Data tidak seimbang umumnya ditemukan dalam data untuk skenario klasifikasi pembelajaran mesin, dan mengacu pada data yang berisi rasio pengamatan yang tidak proporsional di setiap kelas. Ketidakseimbangan ini dapat menyebabkan efek positif yang dirasakan secara keliru dari akurasi model, karena data input memiliki bias terhadap satu kelas, yang menghasilkan model terlatih untuk meniru bias tersebut.

Selain itu, Pekerjaan ML otomatis menghasilkan bagan berikut secara otomatis. Bagan ini membantu Anda memahami kebenaran klasifikasi model Anda, dan mengidentifikasi model yang berpotensi terpengaruh oleh data yang tidak seimbang.

Bagan Deskripsi
Matriks Kebingungan Mengevaluasi label yang diklasifikasikan dengan benar terhadap label data yang aktual.
Pengenalan-presisi Mengevaluasi rasio label yang benar terhadap rasio instans label data yang ditemukan
Kurva ROC Mengevaluasi rasio label yang benar terhadap rasio label positif-palsu.

Menangani data tidak seimbang

Sebagai bagian dari tujuannya menyederhanakan alur kerja pembelajaran mesin, ML Otomatis telah membangun kemampuan untuk membantu menangani data yang tidak seimbang seperti,

  • Kolom bobot: ML otomatis membuat kolom bobot sebagai input untuk menyebabkan baris dalam data ditimbang ke atas atau ke bawah, yang dapat digunakan untuk membuat kelas lebih atau kurang "penting."

  • Algoritma yang digunakan oleh ML Otomatis mendeteksi ketidakseimbangan ketika jumlah sampel di kelas minoritas sama dengan atau kurang dari 20% dari jumlah sampel di kelas mayoritas, di mana kelas minoritas mengacu pada sampel terkecil dan kelas mayoritas mengacu pada sampel terkecil dan kelas mayoritas mengacu pada sampel terbanyak. Selanjutnya, pembelajaran mesin otomatis akan menjalankan eksperimen dengan data subsampel untuk memeriksa apakah menggunakan bobot kelas akan memperbaiki masalah ini dan meningkatkan performa. Jika memastikan performa yang lebih baik melalui percobaan ini, maka perbaikan ini diterapkan.

  • Gunakan metrik performa yang lebih sesuai dengan data tidak seimbang. Misalnya, AUC_weighted adalah metrik utama yang menghitung kontribusi setiap kelas berdasarkan jumlah relatif sampel yang mewakili kelas tersebut, karenanya lebih kuat terhadap ketidakseimbangan.

Teknik berikut adalah opsi tambahan untuk menangani data yang tidak seimbang di luar ML Otomatis.

  • Resampling bahkan ke ketidakseimbangan kelas, baik dengan up-sampling kelas yang lebih kecil atau down-sampling kelas yang lebih besar. Metode ini membutuhkan keahlian untuk memproses dan menganalisis.

  • Ulasan metrik performa untuk data tidak seimbang. Misalnya, skor F1 adalah rata-rata harmonis presisi dan pengenalan. Presisi mengukur ketepatan pengklasifikasi, di mana presisi yang lebih tinggi menunjukkan lebih sedikit positif palsu, sementara pengenalan mengukur kelengkapan pengklasifikasi, di mana pengenalan yang lebih tinggi menunjukkan lebih sedikit negatif palsu.

Langkah berikutnya

Lihat contoh dan pelajari cara membuat model menggunakan ML Otomatis: