mengapa kita perlu menangani ketidakseimbangan data?

12

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

  1. Mengapa kita perlu menangani ketidakseimbangan data?
  2. Berapa rasio yang disarankan untuk memiliki set saldo
sara
sumber
Saya suka pertanyaan itu. Memahami mengapa itu sangat penting.
Dal
Lihat berhubungan pertanyaan pada lintas divalidasi stats.stackexchange.com/questions/312780/...
Dal

Jawaban:

8

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.

Dl
sumber
Jadi, karena saya mengerti lebih baik menyeimbangkan data karena sebagian besar algoritma bekerja dengan baik pada data Seimbang meskipun tidak sesuai dengan distribusi alami?
sara
Bisakah Anda menjelaskan lebih lanjut tentang kalimat ini "ketika biaya kesalahan Anda tidak sesuai dengan distribusi sampel." Saya tidak mengerti dengan baik
sara
1
Menjawab komentar pertama: Kumpulan data yang tidak seimbang akan mengarahkan algoritma untuk mendapatkan hasil yang baik dengan mengembalikan mayoritas. Itu akan menjadi masalah jika Anda lebih tertarik pada minoritas. Jadi, menyeimbangkan adalah cara untuk memaksa algoritma untuk memberikan bobot lebih kepada minoritas. Namun, setelah Anda menyeimbangkan, distribusi kereta dan distribusi tes berbeda sehingga Anda perlu menyesuaikan model Anda kembali ke distribusi tes (seperti dalam metode yang saya usulkan).
Dal
Menjawab komentar kedua: Memang, poin itu agak tidak jelas. Saya mengedit jawabannya. Apakah sudah jelas sekarang?
Dal
ya jadi karena saya mengerti pelatihan dan distribusi tes harus sama, jadi bukankah solusi adalah bahwa setelah saya menyeimbangkan pelatihan saya set ke 50 50 rasio, saya pergi dan juga mengatur set tes saya ke 50 50?
sara
3
  • Jawaban singkat:

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

  • Jawaban panjang:

Ada nuansa halus yang penting untuk dipahami ketika berbicara tentang ketidakseimbangan kelas. Yaitu, apakah data Anda tidak seimbang karena:

  1. distribusi data itu sendiri tidak seimbang

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.

  1. itu tidak mewakili distribusi data yang sebenarnya

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.

Valentin Calomme
sumber
Jawabannya sangat elaboratif. Bisakah Anda menjelaskan lebih banyak dengan contoh tentang apa yang Anda maksud dengan "Jika model Anda lebih baik karena memiliki biaya rendah, maka atasi ketidakseimbangannya." Kenapa saya harus berurusan dengan ketidakseimbangan jika model memiliki biaya rendah?
sara
Saya mengedit jawaban saya sedikit jadi semoga lebih jelas. Yang saya maksudkan adalah sebagai berikut: "jika model Anda dianggap lebih baik ketika memiliki biaya rendah, dan berurusan dengan ketidakseimbangan mengurangi biaya, maka lakukanlah".
Valentin Calomme