Tabakalı örnekleme gerekli mi (rastgele orman, Python)?


14

Dengesiz veri kümemde rastgele bir orman modeli çalıştırmak için Python kullanıyorum (hedef değişken ikili bir sınıftı). Eğitim ve test veri kümesini böldüğümde, katmanlı örnekleme (gösterilen kod gibi) kullanıp kullanmama konusunda mücadele ettim. Şimdiye kadar, projemde tabakalı vakanın daha yüksek bir model performansına yol açacağını gözlemledim. Ancak, modelimi, hedef sınıfın mevcut veri kümemle dağılımında büyük olasılıkla farklılık gösterecek yeni vakaları tahmin etmek için kullanacaksam. Bu yüzden bu kısıtlamayı gevşetmeye ve tabakalandırılmamış bölünmeyi kullanmaya meyilliyim. Herkes bu noktayı açıklığa kavuşturmak için tavsiye verebilir mi?

train,test=train_test_split(myDataset, test_size=0.25, stratify=y)

Yanıtlar:


13

Her sınıfa ait değerlerin sayısı dengesizse, tabakalı örnekleme kullanmak iyi bir şeydir. Temel olarak modelden, sınıf oranı tüm veri kümesiyle aynı olacak şekilde eğitim ve test setini almasını istersiniz, ki bu doğru olan şeydir . Sınıflarınız dengelenirse, bir karışıklık (burada tabakalaşma gerekmez) temel olarak adil bir test ve tren bölünmesini garanti edebilir.

Şimdi modeliniz sayıca az olan sınıfı (sayıları daha az olan sınıf) tahmin edebilecek veya en azından yeterli donanıma sahip olacaktır. Bu nedenle, Doğruluk'u hesaplamak yerine, Duyarlılık ve Özgüllük gibi başka ölçümler aldınız . Bunlara dikkat edin, bunlar koruyucular.

Bu yardımcı olur umarım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.