Data pelatihan tidak seimbang - tetapi apakah set validasi saya juga harus?

9

Saya telah memberi label data yang terdiri dari 10.000 contoh positif, dan 50.000 contoh negatif, sehingga totalnya 60000 contoh. Jelas data ini tidak seimbang.

Sekarang katakanlah saya ingin membuat set validasi saya, dan saya ingin menggunakan 10% dari data saya untuk melakukannya. Pertanyaan saya adalah sebagai berikut:

Haruskah saya memastikan bahwa set validasi saya juga tidak seimbang, (sebagai anggukan untuk distribusi set training yang sebenarnya), atau haruskah saya memastikan set validasi saya seimbang? Jadi misalnya, seandainya set validasi saya dibuat dari:

  • 10% contoh positif + 10% negatif, memberikan 1000+ dan 5000- contoh. (Set validasi ini mencerminkan ketidakseimbangan data asli).
  • Atau haruskah set validasi dibuat dari katakanlah, 10% positif, memberi 1000+, dan (10/5 = 2%) negatif, juga memberikan 1000 contoh?

(Pertanyaan yang sama untuk set tes).

Tampaknya ada banyak metode tentang cara berlatih dengan data yang tidak seimbang, tetapi tidak ada tempat saya bisa melihat untuk menemukan praktik terbaik tentang apakah set validasi saya juga harus mencerminkan ketidakseimbangan yang asli, atau tidak. Akhirnya, saya TIDAK melakukan cross-validation, saya akan menggunakan set validasi tunggal, dan jaringan saraf.

Terima kasih!

Spacey
sumber
Saya tidak memiliki referensi khusus untuk ini, tetapi saya kira ada satu karena: a) Saya telah menerbitkan makalah yang melibatkan pemisahan pelatihan / validasi dan saya selalu membuat pemisahan sehingga tingkat positif keseluruhan setara di kedua set ; b) Saya ingat komentar resensi menunjukkan ini yang harus Anda lakukan.
Gammer
@meram Maaf, maksud Anda Anda memilih metode (1) di posting saya?
Spacey
Ya, yang pertama
gammer
@meram Ya, lihat itulah yang saya pikirkan pada awalnya, tapi rasanya agak aneh semakin saya memikirkannya, karena jika kita mempercayai set pelatihan kita, maka tentunya kita juga harus menghargai distribusinya, dan mencoba untuk mereplikasi itu dalam set validasi juga ...
Spacey
Saya kira mungkin itu tergantung pada bagaimana kumpulan data asli dikumpulkan. Apakah ini sampel acak? Jika demikian, perpecahan seimbang masuk akal karena itu membuat set validasi lebih mewakili populasi. Jika retrospektif (misal, kontrol kasus), maka bisa berbeda. Saya tidak yakin. Saya sudah menceritakan pengalaman saya. Semoga Anda mendapatkan jawaban yang pasti. Jika Anda mengetahuinya, posting jawaban.
Gamer

Jawaban:

8

Poin dari set validasi adalah untuk memilih zaman / iterasi di mana jaringan saraf paling mungkin untuk melakukan yang terbaik pada set tes. Selanjutnya, lebih disukai bahwa distribusi kelas dalam set validasi mencerminkan distribusi kelas pada set tes, sehingga metrik kinerja pada set validasi adalah perkiraan yang baik dari metrik kinerja pada set tes. Dengan kata lain, set validasi harus mencerminkan ketidakseimbangan data asli.

Franck Dernoncourt
sumber
Saya menduga Franck yang sama. Sekarang dengan yang dikatakan, (set validasi harus mencerminkan distribusi data miring asli), akankah Anda setuju bahwa dalam set pelatihan, kami membatalkan data?
Spacey
@ Spacey Salah satu cara untuk mengatasi masalah ini disebut "bobot penting", dan itu pada dasarnya berarti: jangan membuat sampel ulang atau membuat sampel sintetis, tetapi sebaliknya cukup berat sampel sesuai dengan kepentingan relatif mereka untuk distribusi pengujian. Lihat jawaban saya di sini untuk detailnya.
jhin
1

Dengan menggunakan data pelatihan dan tes yang secara alami tidak seimbang, saya bertemu dengan sebuah skenario di mana model saya tampak membaik dari waktu ke waktu tetapi sebenarnya hanya menghafal sampel kelas minoritas dalam set pelatihan dan belajar untuk selalu memprediksi kelas mayoritas untuk yang lainnya.

Saya mendiagnosis masalah ini dengan menyeimbangkan data pengujian saya dan mengamati bahwa keakuratan dan kehilangan data pengujian menjadi lebih buruk dengan lebih banyak zaman (yang tidak terjadi dengan data tes yang tidak seimbang).

Cara lain untuk mendiagnosis masalah seperti ini adalah dengan menggunakan metrik seperti sensitivitas, spesifisitas, atau akurasi untuk kelas tunggal alih-alih melihat keakuratan / kehilangan keseluruhan. Posting blog ini menjelaskan lebih lanjut tentang ini dan memberikan contoh implementasi metrik ini di Keras http://www.deepideas.net/unbalanced-classes-machine-learning/

Saya pikir solusi yang tepat tergantung pada aplikasi dunia nyata model Anda dan seberapa penting keakuratan kelas minoritas. Misalnya jika Anda melatih sesuatu seperti imagenet dan perhatikan bahwa ia memiliki akurasi rendah untuk kelas "siput laut" yang mungkin ok. Tetapi jika Anda melatih model untuk memprediksi jika seseorang menderita kanker maka keakuratan kelas minoritas akan sangat penting.

rampok
sumber
0

Itu tergantung pada apa yang Anda optimalkan: apa target distribusi Anda, di mana Anda ingin meminimalkan kerugian yang diharapkan? Jika sama dengan distribusi pelatihan, maka data validasi harus mengikuti distribusi yang sama. Jika itu adalah distribusi yang berbeda (misalnya Anda ingin algoritma untuk melakukan dengan baik pada data yang seimbang), Anda benar-benar ingin meminimalkan kerugian yang diharapkan selama itu distribusi, dan set validasi Anda harus Sejalan dicicipi sesuai dengan distribusi yang. Situtation ini disebut "shift kovariat", dan ada seluruh cabang penelitian tentang apa yang disebut "adaptasi shift kovariat," yaitu, berurusan dengan masalah ini. Ada sebuah buku karya Sugiyama / Kawanabe tentang subjek dari 2012, berjudul "

jhin
sumber