7 Teknik Menangani Data Tidak Seimbang

7 Teknik Menangani Data Tidak Seimbang
7 Teknik Menangani Data Tidak Seimbang

Di Googling - Apa kesamaan dataset dalam domain, deteksi penipuan di perbankan, penawaran real-time dalam pemasaran, atau deteksi intrusi dalam jaringan?

Data yang digunakan di area ini seringkali memiliki kurang dari 1% peristiwa yang jarang terjadi, tetapi “menarik” (mis. penipu menggunakan kartu kredit, iklan yang diklik pengguna, atau server yang rusak memindai jaringannya). Namun, sebagian besar algoritma machine learning tidak bekerja dengan baik dengan kumpulan data yang tidak seimbang. Tujuh teknik Imbalanced data berikut dapat membantu anda, melatih classifier untuk mendeteksi kelas abnormal.

1. Gunakan evaluation metrics yang tepat

imbalanced-data metrics

       Menerapkan metrik evaluasi yang tidak sesuai untuk model yang dihasilkan menggunakan data yang tidak seimbang bisa berbahaya. Bayangkan data pelatihan kita adalah yang diilustrasikan dalam grafik di atas. Jika akurasi digunakan untuk mengukur kebaikan suatu model, model yang mengklasifikasikan semua sampel pengujian menjadi “0” akan memiliki akurasi yang sangat baik (99,8%), tetapi jelas, model ini tidak akan memberikan informasi yang berharga bagi kami.

Dalam hal ini, metrik evaluasi alternatif lain dapat diterapkan seperti: 

  • Precision/Specificity: berapa banyak instans terpilih yang relevan.
  • Recall/Sensitivity: berapa banyak instans relevan yang dipilih.
  • F1 Score: rata-rata harmonik presisi dan daya ingat.
  • MCC: koefisien korelasi antara klasifikasi biner yang diamati dan diprediksi.
  • AUC: hubungan antara laju positif-benar dan laju positif palsu. 

2. Resample training set

       Selain menggunakan kriteria evaluasi yang berbeda, seseorang juga dapat bekerja untuk mendapatkan kumpulan data yang berbeda. Dua pendekatan untuk membuat kumpulan data yang seimbang dari yang tidak seimbang adalah pengambilan sampel yang kurang dan pengambilan sampel yang berlebihan.

  • Under-sampling

       Under-sampling menyeimbangkan dataset dengan mengurangi ukuran kelas yang melimpah. Metode ini digunakan bila jumlah data mencukupi. Dengan menyimpan semua sampel di kelas yang langka dan secara acak memilih jumlah sampel yang sama di kelas yang melimpah, set data baru yang seimbang dapat diambil untuk pemodelan lebih lanjut.

  • Over-sampling

       Sebaliknya, oversampling digunakan ketika jumlah data tidak mencukupi. Itu mencoba menyeimbangkan kumpulan data dengan meningkatkan ukuran sampel langka. Daripada menyingkirkan sampel yang melimpah, sampel langka baru dihasilkan dengan menggunakan misalnya pengulangan, bootstrap atau SMOTE (Synthetic Minority Over-Sampling Technique).

Perhatikan bahwa tidak ada keunggulan absolut dari satu metode resampling di atas yang lain. Penerapan kedua metode ini bergantung pada kasus penggunaan yang diterapkan dan kumpulan data itu sendiri. Kombinasi over- dan under-sampling seringkali berhasil juga.

3. Gunakan K-fold Cross-Validation dengan Cara yang Benar

       Patut dicatat bahwa validasi silang harus diterapkan dengan benar saat menggunakan metode over-sampling untuk mengatasi masalah ketidakseimbangan.

Perlu diingat bahwa over-sampling mengambil sampel langka yang diamati dan menerapkan bootstrap untuk menghasilkan data acak baru berdasarkan fungsi distribusi. Jika validasi silang diterapkan setelah over-sampling, pada dasarnya yang kita lakukan adalah overfitting model kita ke hasil bootstrap buatan tertentu. Itulah mengapa validasi silang harus selalu dilakukan sebelum mengambil sampel data secara berlebihan, seperti bagaimana pemilihan fitur harus diterapkan. Hanya dengan resampling data berulang kali, keacakan dapat dimasukkan ke dalam dataset untuk memastikan tidak akan ada masalah overfitting.

4. Kumpulkan Dataset Sampel Ulang yang Berbeda

       Cara termudah untuk berhasil menggeneralisasi model adalah dengan menggunakan lebih banyak data. Masalahnya adalah pengklasifikasi out-of-the-box seperti regresi logistik atau hutan acak cenderung menggeneralisasi dengan membuang kelas langka. Salah satu praktik terbaik yang mudah adalah membuat n model yang menggunakan semua sampel kelas langka dan sampel n-berbeda dari kelas melimpah. Mengingat bahwa Anda ingin menyatukan 10 model, Anda akan menyimpan misalnya 1.000 kasus dari kelas langka dan sampel acak 10.000 kasus dari kelas melimpah. Kemudian Anda tinggal membagi 10.000 kasing menjadi 10 bagian dan melatih 10 model berbeda.

imbalanced-data

Pendekatan ini sederhana dan dapat diskalakan secara horizontal sempurna jika Anda memiliki banyak data, karena Anda dapat melatih dan menjalankan model Anda pada node cluster yang berbeda. Model ansambel juga cenderung menggeneralisasi lebih baik, yang membuat pendekatan ini mudah ditangani.

5. Resample dengan Rasio Berbeda

       Pendekatan sebelumnya dapat disesuaikan dengan bermain dengan rasio antara kelas yang langka dan yang melimpah. Rasio terbaik sangat bergantung pada data dan model yang digunakan. Tetapi alih-alih melatih semua model dengan rasio yang sama dalam ansambel, ada baiknya mencoba ansambel rasio yang berbeda. Jadi, jika 10 model dilatih, mungkin masuk akal untuk memiliki model yang memiliki rasio 1:1 (jarang:melimpah) dan satu lagi dengan rasio 1:3, atau bahkan 2:1. Bergantung pada model yang digunakan, ini dapat memengaruhi bobot yang diperoleh satu kelas.

imbalanced-data resample

6. Cluster kelas yang melimpah

       Pendekatan elegan diusulkan oleh Sergey di Quora. Alih-alih mengandalkan sampel acak untuk menutupi variasi sampel pelatihan, dia menyarankan untuk mengelompokkan kelas yang melimpah dalam kelompok r, dengan r menjadi jumlah kasus dalam r. Untuk setiap grup, hanya medoid (pusat cluster) yang disimpan. Model tersebut kemudian dilatih dengan kelas langka dan medoid saja.

imbalanced-data cluster

7. Rancang Models Anda

       Semua metode sebelumnya berfokus pada data dan mempertahankan model sebagai komponen tetap. Namun pada kenyataannya, tidak perlu melakukan resample data jika model tersebut cocok untuk data yang tidak seimbang. XGBoost yang terkenal sudah menjadi titik awal yang baik jika kelasnya tidak terlalu miring, karena secara internal menjaga agar tas yang digunakannya tidak seimbang. Tapi sekali lagi, datanya disampel ulang, itu hanya terjadi secara diam-diam.

Dengan merancang fungsi biaya yang lebih menghukum klasifikasi yang salah dari kelas yang langka daripada klasifikasi yang salah dari kelas yang berlimpah, dimungkinkan untuk merancang banyak model yang secara alami menggeneralisasi mendukung kelas yang langka. Misalnya, mengutak-atik SVM untuk menghukum klasifikasi yang salah dari kelas langka dengan rasio yang sama dengan kelas ini yang kurang terwakili.

 

       Ini bukan daftar teknik satu-satunya dalam pembahasan pada digoogling.com ini, melainkan titik awal untuk menangani data yang tidak seimbang. Tidak ada pendekatan atau model terbaik yang cocok untuk semua masalah dan sangat disarankan untuk mencoba berbagai teknik dan model untuk mengevaluasi mana yang terbaik. Cobalah untuk menjadi kreatif dan gabungkan pendekatan yang berbeda. Penting juga untuk menyadari bahwa di banyak domain (misalnya deteksi penipuan, penawaran real-time), di mana kelas yang tidak seimbang terjadi, “aturan pasar” terus berubah. Jadi, periksa apakah data sebelumnya mungkin sudah usang.