Data Tidak Seimbang dan Cara Menyeimbangkannya – Menuju AI – Teknologi, Sains, dan Teknik Terbaik

Penulis: Vaishnavi Patil

Pembelajaran mesin

Gambar oleh Roman Kraft di Unsplash

Belakangan ini, menangani data telah menjadi pekerjaan yang membosankan, mengingat fakta bahwa sebagian besar waktu dihabiskan untuk membersihkan dan memproses data sebelumnya. Seringkali data di dunia nyata tidak tersedia sesuai harapan kami. Ada banyak penyimpangan, dan sulit untuk menangani data semacam itu. Salah satu kendala utama dalam penanganan data tersebut adalah ketidakseimbangan. Secara mencolok, data terstruktur sedemikian rupa sehingga fitur target (khususnya masalah klasifikasi) memiliki mayoritas satu kelas dan kelas kedua memiliki sedikit atau tanpa sampel pelatihan. Kedua, untuk masalah klasifikasi kelas jamak, dalam fitur target, sampel pelatihan dari kelas tertentu sangat melebihi dibandingkan dengan sampel kelas lain. Ini menghambat kinerja model. Di bawah Tercantum adalah beberapa cara Anda dapat menghindari masalah tersebut dan memastikan bahwa model Anda melakukan keadilan yang efektif untuk data Anda.

Undersampling Oversampling Menyetel hyperparameter bobot model. Mengatur pemisahan uji kereta menjadi atribut stratify.

Undersampling

Undersampling mengacu pada penghapusan sampel pelatihan dari data yang termasuk dalam kelas fitur target yang memiliki mayoritas di atas kelas lain. Metode ini, bagaimanapun, hadir dengan pro dan kontra. Kelebihannya, Anda dapat mempercepat pelatihan model karena model memiliki sampel yang relatif lebih sedikit untuk dilatih, dan set data seimbang. Kontra, karena jumlah sampel pelatihan berkurang, model (yang sangat efisien) tidak akan dapat menggeneralisasi dengan baik pada data yang tidak terlihat dan terkadang menyebabkan overfitting. Seperti yang dikatakan, semakin banyak data yang dilihat model, semakin baik prediksi pada data yang tidak terlihat.

Pengambilan sampel berlebihan

Gambar oleh Penulis

Oversampling adalah suatu teknik dimana jumlah sampel pelatihan dari kelas minoritas ditambah untuk mengimbangi jumlah sampel dari kelas mayoritas dan minoritas. Ini berlaku hanya untuk masalah klasifikasi biner di mana Anda hanya memiliki dua kelas. Dalam kasus klasifikasi kelas jamak, jumlah sampel kelas minoritas ditingkatkan. Salah satu teknik kunci yang digunakan untuk oversampling disebut SMOTE (Synthetic Minority Oversampling Technique).

Dalam metode ini, sampel pelatihan acak dipilih dari kelas minoritas, dan menggunakan K-Nearest Neighbours, sampel pelatihan yang paling dekat dengan sampel yang dipilih (biasanya k = 5) dipertimbangkan. Dari sampel yang dipilih ini, sampel acak dipilih. Dengan mempertimbangkan sampel ini dan sampel yang berkaitan dengan kelas minoritas, sampel pelatihan sintetis dibuat menggunakan metode SMOTE. Dengan penerapan oversampling, model Anda mungkin dapat menggeneralisasi data baru dengan baik. Satu kelemahan yang perlu dipertimbangkan adalah bahwa kumpulan data yang memiliki sampel pelatihan dalam jumlah besar tidak akan menjadi pilihan yang baik untuk pengambilan sampel yang berlebihan. Ini karena sejumlah besar sampel memperlambat proses pelatihan model yang ada.

Menyetel hyperparameter ‘bobot’ model.

Secara umum, jika Anda mempertimbangkan model pembelajaran mesin utama seperti Random Forest Classifier, Anda dapat menyempurnakan hyperparameter yang dikenal sebagai sample_weight. Misalnya, dalam masalah klasifikasi biner, jika kelas target 1 melebihi 3 kali lipat dari kelas 0 maka Anda dapat menyetel hyperparameter ini sebagai sample_weight =[np.array[3 if i==0 else 1 if i==1] Demikian pula, untuk pengklasifikasi Catboost, kami memiliki hyperparameter class_weights, yang dapat disetel bergantung pada distribusi kelas kami. Dalam metode ini, Anda perlu menentukan rasio masing-masing kelas. Misalnya, jika kelas 0 berkontribusi pada 70 persen sampel pelatihan dan 30 persen sisanya dimiliki oleh kelas 1, Anda harus menyetel parameter seperti class_weights =[0.3,0.7] Dari sini, kami menyimpulkan bahwa karena kelas 0 memiliki 70% sampel pelatihan, kami menetapkan nilai 0,3 untuk menyamakan rasio sehingga datanya seimbang. Kasus yang sama terjadi pada sampel dengan kelas 1.

Menyetel atribut stratify train_test_split.

Gambar oleh Alexandre Van Thuan di Unsplash

Di sini mari kita lihat metode langsung dan mudah yang melaluinya menyeimbangkan data sesederhana mungkin. Selama memisahkan set data menjadi set pelatihan dan pengujian, Anda dapat menentukan atribut ‘stratify’ dari fungsi tersebut, yang menyeimbangkan set data yang tidak seimbang. Dengan menggunakan atribut ini, train_test_split membagi set data asli sedemikian rupa sehingga proporsi kedua kelas (klasifikasi biner) dipertahankan dalam set pelatihan dan validasi. Misalnya, jika Anda mendistribusikan data asli dalam rasio 80:20, train_test_split (X, y, test_size = 0,2, stratify = y), proporsi 80:20 dalam set pelatihan serta set pengujian akan dipertahankan. Ini adalah metode langsung; namun, Anda dapat menggunakan salah satu metode, yang pada gilirannya berkontribusi terhadap kinerja model Anda secara keseluruhan.

Referensi

Scikit mempelajari dokumentasi resmi. Gambar oleh Penulis. Gambar dari Unsplash.

Kesimpulan

Data dunia nyata seringkali tidak terstruktur dan tidak seimbang. Oleh karena itu, penanganan ketidakseimbangan data adalah salah satu poin utama yang harus diperhatikan selama preprocessing data. Saya berharap dapat memberikan informasi yang berharga tentang penanganan dataset yang tidak seimbang. Terakhir, salah satu metode terbaru untuk menangani ketidakseimbangan adalah metode Resampling Ensemble oleh Andreas Mueller. Jangan ragu untuk memeriksa ini dan metode di atas untuk penanganan data.

Data Tidak Seimbang dan Cara Menyeimbangkan Ini awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Towards AI