Class Imbalance (Sınıf Dengesizliği (Class Imbalance))

Sınıflandırma veri kümelerinde farklı sınıflara ait örnek sayısının eşitsiz dağılımı; sahtekarlık tespiti ve nadir hastalık teşhisinde kritik sorun.

Sınıf Dengesizliği (Class Imbalance), bir sınıflandırma veri kümesinde farklı sınıflara ait örnek sayısının birbirine eşit olmaması durumudur. Gerçek dünya veri kümelerinin büyük çoğunluğu bu sorunu taşır: sahtekarlık tespitinde meşru işlemler sahte işlemlere göre yüzlerce kat fazla olabilirken, nadir hastalık teşhisinde hasta örnekleri sağlıklı bireylere oranla son derece azdır. Bir model dengesiz veriyle eğitildiğinde çoğunluk sınıfını tahmin etmeyi öğrenerek yüksek genel doğruluk (accuracy) elde eder; ancak gerçek hayatta kritik olan azınlık sınıfı için yetersiz kalır. Örneğin %99 sağlıklı ve %1 hasta içeren bir veri kümesinde model her zaman 'sağlıklı' tahmin yapsa da %99 doğruluk elde eder. Bu durum, doğruluğun yanlış bir başarı metriği olduğunu ortaya koyar; Precision, Recall, F1 ve AUC-ROC bu tür senaryolarda daha güvenilir metriklerdir. Dengesizlikle başa çıkmanın temel yöntemleri dört grupta toplanır. Veri düzeyinde yöntemler; azınlık sınıfını yapay olarak artıran aşırı örnekleme (oversampling) ve çoğunluk sınıfını azaltan alt örnekleme (undersampling) tekniklerini kapsar. SMOTE (Synthetic Minority Over-sampling Technique), 2002'de sunulmuş en yaygın aşırı örnekleme yöntemi olup mevcut azınlık örneklerini interpolasyon ile çoğaltır. Algoritma düzeyinde yöntemler ise hatalı sınıflandırılmış azınlık örneklerini daha ağır cezalandıran maliyet-duyarlı öğrenmeyi (cost-sensitive learning) kapsar. Sınıf ağırlıkları parametresi (class_weight='balanced' scikit-learn'de) otomatik dengeleme sunar. Ensemble yöntemleri arasında BalancedRandomForest ve EasyEnsemble öne çıkar. Son olarak eşik (threshold) ayarı, model tahmin olasılık eşiğini kaydırarak hassasiyet-geri çağırma dengesini yönetir. Türkiye'deki veri bilimi pratiğinde sahtekarlık tespiti, kredi risk modelleme ve hastalık erken tanı gibi yüksek değerli uygulamaların tamamı sınıf dengesizliği sorunuyla yüzleşmek zorundadır. Bu sorunun farkında olmadan geliştirilen modeller production ortamında ciddi hatalara yol açar.

Neden Sınıf Dengesizliği Önemlidir?

Dengesiz veri kümelerinde standart makine öğrenimi algoritmaları büyük sınıfı optimize etme eğilimi taşır. Model eğitimi sırasında kayıp fonksiyonu çoğunluk sınıfının örneklerinden daha fazla güncelleme alır; bu da azınlık sınıfını tanıyamayan bir model ortaya çıkarır. Gerçek dünya senaryolarında azınlık sınıfı genellikle en yüksek iş değerini taşır: tespit edilmeyen bir sahtekarlık işlemi veya kaçırılan bir kanser vakası, genel doğruluğu yüksek görünen modelin aslında yararsız olduğunu gösterir.

Başlıca Çözüm Yöntemleri

SMOTE

Synthetic Minority Over-sampling Technique. Azınlık örneklerinin k-NN komşuları arasında interpolasyon yaparak yeni sentetik örnekler üretir. En yaygın aşırı örnekleme tekniği.

Class Weight

scikit-learn'de class_weight='balanced' parametresi, sınıf frekanslarına göre ağırlıkları otomatik hesaplar. Model öğrenimi sırasında azınlık sınıfına daha yüksek ceza verir.

Threshold Ayarı

Varsayılan 0.5 eşiğini azınlık sınıfı yönüne kaydırmak (örneğin 0.3) recall'u artırır ancak precision'u düşürür. ROC eğrisi üzerinde Youden indeksi ile optimal eşik belirlenir.

Ensemble Metotları

BalancedRandomForest ve EasyEnsemble, her alt örnekleme iterasyonunda sınıfları dengeli boostrap'larla birleştirir.

Doğru Değerlendirme Metrikleri

  • check_circle Precision (Kesinlik): Modelin 'pozitif' dediği örneklerin gerçekten pozitif olma oranı. Yanlış alarm maliyeti yüksek senaryolarda (spam tespiti) önemlidir.
  • check_circle Recall (Geri Çağırma): Gerçek pozitif örneklerin tespit edilme oranı. Kaçırılan vakanın maliyeti yüksek senaryolarda (kanser tespiti) kritiktir.
  • check_circle F1-Score: Precision ve Recall'un harmonik ortalaması; her iki metriği dengelemek istenen durumlarda tercih edilir.
  • check_circle AUC-ROC: Tüm eşik değerleri üzerinde model performansını özetler; 0.5 rastgele tahmini, 1.0 mükemmel modeli temsil eder.

Türkiye'de Sınıf Dengesizliği Uygulamaları

Türkiye'deki fintech şirketleri ve bankalar sahtekarlık tespiti modellerinde sınıf dengesizliği sorunuyla doğrudan yüzleşmektedir: meşru işlemler sahte işlemlere kıyasla birkaç kat daha fazladır. Sağlık alanında nadir görülen hastalıkların erken teşhisi için geliştirilen modeller de aynı sorunu taşır. E-ticaret sektöründe iade sahtekarlığı ve tıklama sahtekarlığı tespiti de kritik azınlık örnekleri içerir. Bu senaryoların tamamında, SMOTE tabanlı oversampling veya cost-sensitive yaklaşımlar model başarımını belirgin biçimde artırabilir.

Sıkça Sorulan Sorular

  • check_circle Hangi dengesizlik oranı kritiktir?: 1:10 oranı başlangıç eşiği olarak kabul edilir. 1:100 veya üzeri 'aşırı dengesizlik' kategorisine girer ve özel teknikler gerektirir.
  • check_circle SMOTE veri sızıntısına yol açar mı?: Evet, SMOTE yalnızca eğitim kümesine uygulanmalıdır. Test kümesine veya çapraz doğrulama dışına uygulanması iyimser sonuçlara neden olur.
  • check_circle Oversampling mi undersampling mi daha iyi?: Veri kümesi küçükse oversampling (SMOTE) tercih edilir; büyük ve bol veri mevcutsa undersampling kabul edilebilir. İkisinin birlikte kullanımı (combined sampling) çoğunlukla daha iyi sonuç verir.
  • check_circle Deep learning dengesiz veriyle nasıl başa çıkar?: Focal Loss (RetinaNet'te kullanılan) zor örneklere otomatik ağırlık verir; ayrıca class_weight, weighted sampling ve veri augmentation kullanılır.
  • check_circle Class imbalance ve anomaly detection arasındaki fark nedir?: Anomaly detection çoğunlukla etiket olmadan yalnızca normal dağılımı öğrenir ve normal dışı olanı bayraklar. Class imbalance her iki sınıf için de etiketli veri varsayar.