Mencegah overfitting dan data yang tidak seimbang dengan ML Otomatis
Data yang terlalu fokus dan tidak seimbang adalah jebakan umum saat Anda membangun model pembelajaran mesin. Secara default, fitur ML Otomatis di Azure Pembelajaran Mesin menyediakan bagan dan metrik untuk membantu Anda mengidentifikasi risiko ini. Artikel ini menjelaskan bagaimana Anda dapat menerapkan praktik terbaik di ML Otomatis untuk membantu mengurangi masalah umum.
Mengidentifikasi data yang terlalu fokus
Overfitting dalam pembelajaran mesin terjadi ketika model terlalu cocok dengan data pelatihan. Akibatnya, model tidak dapat membuat prediksi yang akurat pada data pengujian yang tidak terlihat. Model menghafal pola dan kebisingan tertentu dalam data pelatihan, dan 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% |
Model A: Pengujian untuk model ini menghasilkan akurasi yang sedikit lebih sedikit daripada pelatihan model. Ada kesalahpahaman umum bahwa jika akurasi pengujian pada data yang tidak terlihat lebih rendah daripada akurasi pelatihan, model terlalu cocok. Namun, akurasi pengujian harus selalu kurang dari akurasi pelatihan. Perbedaan antara overfitting versus data yang sesuai turun untuk mengukur seberapa sedikit akurasinya.
Model A versus model B: Model A adalah model yang lebih baik karena memiliki akurasi pengujian yang lebih tinggi. Meskipun akurasi pengujian sedikit lebih rendah pada 95%, itu bukan perbedaan signifikan yang menunjukkan overfitting ada. Model B tidak disukai karena akurasi kereta dan pengujian serupa.
Model C: Model ini mewakili kasus overfitting yang jelas. Akurasi pelatihan tinggi dan akurasi pengujian rendah. Perbedaan ini bersifat subjektif, tetapi berasal dari pengetahuan tentang masalah dan data Anda, dan berapa besarnya kesalahan yang dapat diterima.
Mencegah overfitting
Dalam kasus yang paling mengerikan, model yang overfitted mengasumsikan kombinasi nilai fitur yang terlihat selama pelatihan selalu menghasilkan output yang sama persis untuk target. Untuk menghindari overfitting data Anda, rekomendasinya adalah mengikuti praktik terbaik pembelajaran mesin. adalah beberapa metode yang dapat Anda konfigurasi dalam implementasi model Anda. ML otomatis juga menyediakan opsi lain secara default untuk membantu mencegah overfitting.
Tabel berikut ini meringkas praktik terbaik umum:
Praktik terbaik | implementasi | ML Otomatis |
---|---|---|
Gunakan lebih banyak data pelatihan, dan hilangkan bias statistik | X | |
Mencegah kebocoran target | X | |
Menggabungkan lebih sedikit fitur | X | |
Mendukung regularisasi dan pengoptimalan hiperparameter | X | |
Menerapkan batasan kompleksitas model | X | |
Menggunakan validasi silang | X |
Menerapkan praktik terbaik untuk mencegah overfitting
Bagian berikut menjelaskan praktik terbaik yang dapat Anda gunakan dalam implementasi model pembelajaran mesin Anda untuk mencegah overfitting.
Gunakan lebih banyak data
Menggunakan lebih banyak data adalah cara paling sederhana dan terbaik untuk mencegah overfitting, dan pendekatan ini biasanya meningkatkan akurasi. Ketika Anda menggunakan lebih banyak data, menjadi lebih sulit bagi model untuk menghafal pola yang tepat. Model ini dipaksa 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 yang ada jika dibandingkan dengan data pengujian langsung.
Mencegah kebocoran target
Kebocoran target adalah masalah serupa. Anda mungkin tidak melihat overfitting antara rangkaian pelatihan dan pengujian, tetapi masalah kebocoran muncul pada waktu prediksi. Kebocoran target terjadi ketika model Anda "curang" selama pelatihan dengan mengakses data yang biasanya tidak dimiliki pada waktu prediksi. Contohnya adalah agar model memprediksi pada hari Senin berapa harga komoditas untuk hari Jumat. Jika fitur Anda secara tidak sengaja menyertakan data dari Hari Kamis, model memiliki akses ke data yang tidak tersedia pada waktu prediksi karena tidak dapat melihat ke masa depan. Kebocoran target adalah kesalahan mudah untuk dilewatkan. Sering terlihat di mana Anda memiliki akurasi tinggi yang tidak normal untuk masalah Anda. Jika Anda mencoba memprediksi harga saham dan melatih model pada akurasi 95%, kemungkinan ada kebocoran target di suatu tempat di fitur Anda.
Menggabungkan 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. Jika Anda dapat menghapus fitur dan mempertahankan akurasi yang sama, model Anda bisa lebih fleksibel dan mengurangi risiko overfitting.
Tinjau Fitur ML otomatis untuk mencegah overfitting
Bagian berikut menjelaskan praktik terbaik yang disediakan secara default di ML Otomatis untuk membantu mencegah overfitting.
Mendukung regularisasi dan penyetelan hiperparameter
Regularisasi adalah proses meminimalkan fungsi biaya untuk menghukum model yang kompleks dan terlalu fokus. Ada berbagai jenis fungsi regularisasi. Secara umum, semua fungsi 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.
Menerapkan batasan kompleksitas model
Pembelajaran Mesin otomatis juga menerapkan batasan kompleksitas model eksplisit untuk mencegah data terlalu fokus. Dalam kebanyakan kasus, implementasi ini khusus untuk pohon keputusan atau algoritma hutan. Kedalaman maksimal pohon individu terbatas, dan jumlah total pohon yang digunakan dalam teknik forest atau ansambel terbatas.
Menggunakan 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 mungkin mendapatkan "keberuntungan" dan memiliki akurasi yang hebat dengan satu subset, tetapi dengan menggunakan banyak subset, model tidak dapat mencapai akurasi tinggi 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 mungkin overfitted, tetapi dengan menggunakan banyak dari mereka, proses mengurangi probabilitas bahwa model akhir Anda overfitted. Tradeoff adalah bahwa CV menghasilkan waktu pelatihan yang lebih lama dan biaya yang lebih besar, karena Anda melatih model satu kali untuk setiap n di subset CV.
Catatan
Validasi silang tidak diaktifkan secara default. Fitur ini harus dikonfigurasi dalam Pengaturan pembelajaran mesin otomatis. Namun, setelah validasi silang dikonfigurasi dan himpunan data validasi 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.
Grafik | 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 tujuan untuk menyederhanakan alur kerja pembelajaran mesin, ML Otomatis menawarkan kemampuan bawaan untuk membantu menangani data yang tidak seimbang:
ML otomatis membuat kolom bobot sebagai input untuk menyebabkan baris dalam data tertimbang ke atas atau ke bawah, yang dapat digunakan untuk membuat kelas kurang lebih "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. Kelas minoritas mengacu pada kelas dengan sampel terkecil dan kelas mayoritas mengacu pada yang memiliki sebagian besar sampel. Nantinya, pembelajaran mesin otomatis menjalankan eksperimen dengan data sub-sampel untuk memeriksa apakah menggunakan bobot kelas dapat memperbaiki masalah ini dan meningkatkan performa. Jika memastikan performa yang lebih baik melalui eksperimen ini, ia menerapkan obatnya.
Gunakan metrik performa yang lebih sesuai dengan data tidak seimbang. Misalnya, AUC_weighted adalah metrik utama yang menghitung kontribusi setiap kelas berdasarkan jumlah sampel relatif yang mewakili kelas tersebut. Metrik ini lebih kuat terhadap ketidakseimbangan.
Teknik berikut adalah opsi lain untuk menangani data yang tidak seimbang di luar ML Otomatis:
Resampel ke ketidakseimbangan kelas. Anda dapat meningkatkan sampel kelas yang lebih kecil atau menurunkan sampel 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. Pengenalan mengukur kelengkapan pengklasifikasi, di mana pengenalan yang lebih tinggi menunjukkan lebih sedikit negatif palsu.