Saya perlu tahu mengapa kita harus berurusan dengan ketidakseimbangan data. Saya tahu bagaimana menghadapinya dan berbagai metode untuk menyelesaikan masalah ini yaitu dengan pengambilan sampel atau pengambilan sampel atau dengan menggunakan Smote.
Sebagai contoh, jika saya memiliki penyakit langka 1 persen dari 100, dan katakanlah saya memutuskan untuk memiliki set data yang seimbang untuk rangkaian pelatihan saya yaitu: 50/50 sampel Tidakkah itu akan membuat mesin berpikir 50% pasien akan memiliki penyakit? meskipun rasionya adalah 1 dari 100. Jadi
- Mengapa kita perlu menangani ketidakseimbangan data?
- Berapa rasio yang disarankan untuk memiliki set saldo
Jawaban:
Anda perlu berurusan dengan set data yang tidak seimbang ketika nilai menemukan kelas minoritas jauh lebih tinggi daripada menemukan mayoritas.
Katakanlah 1% populasi memiliki penyakit langka itu. Misalkan Anda menetapkan biaya yang sama untuk mengatakan bahwa pria yang sehat sakit atau mengatakan bahwa pria yang sakit itu sehat. Berikan model yang mengatakan bahwa semua orang sehat, dapatkan akurasi 99% dan pulang lebih awal. Masalah dengan model seperti itu adalah bahwa meskipun memiliki akurasi tinggi, itu mungkin tidak akan apa yang Anda cari. Sebagian besar waktu Anda ingin menemukan orang dengan penyakit (memberi bobot yang tinggi untuk negatif palsu) jauh lebih banyak daripada yang Anda takut untuk mengirim orang sehat ke tes yang tidak dibutuhkan (berat badan rendah ke positif palsu). Dalam masalah kesehatan dunia nyata, rasio antara berat dapat dengan mudah 1 banding 1.000.
Ketidakseimbangan dalam distribusi gagal sebagian besar algoritma menemukan solusi yang tepat.
Anda benar bahwa hanya menyeimbangkan distribusi bukanlah solusi yang optimal. Memang, suatu algoritma yang dilatih tentang distribusi seimbang tidak cocok dengan distribusi alami yang akan dievaluasi. Metode favorit saya adalah mengadaptasinya kembali, seperti yang Anda lihat di sini . Untuk diskusi, lihat di sini .
Pengaturan rasio untuk beberapa masalah lain tidak akan berhasil karena Anda akan memiliki masalah yang sama.
Smote bekerja dengan cara yang berbeda, yang tidak berfungsi dengan baik ketika saya mencobanya, tetapi mungkin cocok dengan masalah Anda.
sumber
Anda perlu mengatasi ketidakseimbangan kelas jika / karena itu membuat model Anda lebih baik (pada data yang tidak terlihat). "Lebih baik" adalah sesuatu yang harus Anda definisikan sendiri. Bisa jadi keakuratan, bisa juga biaya, bisa jadi tingkat positif yang sebenarnya dll
Ada nuansa halus yang penting untuk dipahami ketika berbicara tentang ketidakseimbangan kelas. Yaitu, apakah data Anda tidak seimbang karena:
Dalam beberapa kasus, satu kelas terjadi lebih dari yang lain. Dan tidak apa-apa. Dalam hal ini, Anda harus melihat apakah kesalahan tertentu lebih mahal daripada yang lain. Ini adalah contoh khas mendeteksi penyakit mematikan pada pasien, mencari tahu apakah seseorang adalah teroris dll. Ini kembali ke jawaban singkat. Jika beberapa kesalahan lebih mahal daripada yang lain, Anda akan ingin "menghukum" mereka dengan memberi mereka biaya yang lebih tinggi. Oleh karena itu, model yang lebih baik akan memiliki biaya yang lebih rendah. Jika semua kesalahan sama buruknya, maka tidak ada alasan nyata mengapa Anda harus menggunakan model yang sensitif biaya.
Penting juga untuk dicatat bahwa menggunakan model biaya-sensitif tidak spesifik untuk dataset yang tidak seimbang. Anda dapat menggunakan model seperti itu jika data Anda juga sangat seimbang.
Terkadang data Anda "tidak seimbang" karena tidak mewakili distribusi data yang sebenarnya. Dalam hal ini, Anda harus berhati-hati, karena Anda memiliki "terlalu banyak" contoh satu kelas dan "terlalu sedikit" yang lain, dan karena itu, Anda perlu memastikan bahwa model Anda tidak over- / underfit pada satu dari kelas-kelas ini.
Ini berbeda dari menggunakan biaya karena mungkin tidak terjadi bahwa satu kesalahan lebih buruk daripada yang lain. Apa yang akan terjadi adalah Anda akan menjadi bias dan itu tidak akan bermanfaat bagi model Anda jika data yang tidak terlihat tidak memiliki distribusi yang sama dengan data yang Anda latih.
Katakanlah saya memberi Anda data pelatihan dan tujuan Anda adalah menebak apakah ada sesuatu yang merah atau biru. Apakah Anda salah mengira biru untuk merah atau merah untuk biru tidak membuat banyak perbedaan. Data pelatihan Anda memiliki 90% kasus merah di mana dalam kehidupan nyata, mereka hanya terjadi 10% dari waktu. Anda harus menghadapinya untuk membuat model Anda lebih baik.
sumber