İçeriğe geç

Class Imbalance Problemi: 1:1.000.000 Oranında Fraud ve Neden Accuracy Yalan Söyler

Anomaly detection'ın temel zorluğu: dengesiz sınıf dağılımı. 1:1.000.000 oranlarında neden klasik ML çöker, accuracy paradoksu, imbalanced learning'in matematiksel ve pratik etkileri, sektörel imbalance tablosu.

Şükrü Yusuf KAYA
25 dakikalık okuma
Orta
Class Imbalance Problemi: 1:1.000.000 Oranında Fraud ve Neden Accuracy Yalan Söyler
⚖️ AD'nin en kritik problemi
Klasik ML interview sorusu: 'Modelin %99 accuracy veriyor, iyi mi?' Cevap: kötü olabilir. Eğer veride %99 normal sınıfı varsa, her şeye 'normal' diyen bir model de %99 accuracy alır — sıfır iş değeri. Bu derste anomaly detection'ın imzası olan dengesiz sınıf dağılımı problemini netleştireceğiz: matematiksel temeli, pratik etkileri, Türkiye sektörel oranları.

Gerçek Sayılar: Anomali Ne Kadar Nadir?#

Anomaly detection'daki sınıf dengesizliği genel ML'in bildiğinin çok ötesinde:
SektörAnomali oranıOran ifadesi
Manuel kalite kontrol — sigara üretimi%0.0011:100.000
Kredi kartı fraud%0.1-0.21:500-1.000
AML (Anti-Money Laundering) suspicious%0.005-0.011:10.000-20.000
Network intrusion (paket seviyesi)%0.00011:1.000.000
Sigorta claim fraud%1-31:30-100
Healthcare claim anomali%2-51:20-50
MVTec endüstriyel defekt%10-301:3-10 (test setinde dengelenmiş)
Web fraud (click fraud)%5-151:6-20
Karşılaştırma için klasik ML:
  • ImageNet kategori dengesi: 1:1 (her sınıf eşit sayıda örnek)
  • Sentiment analysis: 1:1-3
  • Çoğu Kaggle yarışması: 1:1-10
Pratik gerçek: Banking fraud ekibinde 1:1000 dengesizlik en yaygın senaryo. Her 1000 işlemden 1'i fraud. Yani 1 milyon işlemlik veri kümesinde sadece ~1000 pozitif örnek var.

Accuracy Paradoksu#

Klasik ML'de accuracy tipik performans ölçüsü:
Imbalanced veride accuracy yanıltıcı:

Senaryo: %0.1 fraud (1.000.000 işlem, 1.000 fraud)#

Model A: "Her şeye normal de"
  • TP = 0, FP = 0, TN = 999.000, FN = 1.000
  • Accuracy = 999.000 / 1.000.000 = %99.9 ← 'mükemmel' görünüyor
  • Recall = 0 → tek bir fraud yakalanmadı
  • Precision = tanımsız (paydaya bölünme)
Model B: Gerçek fraud detector
  • TP = 800, FP = 200, TN = 998.800, FN = 200
  • Accuracy = 999.600 / 1.000.000 = %99.96 ← Model A'dan az daha iyi
İki model arasında accuracy farkı %0.06. Ama iş etkisi:
  • Model A: ~5M TL yıllık fraud kaybı (hiçbir fraud bloklanmadı)
  • Model B: ~1M TL yıllık fraud kaybı (%80 bloklandı)
Sonuç: Accuracy imbalanced veride tek başına yanıltıcı. Precision, Recall, F1, PR-AUC kullanmak şart. Modül 4'te detaylı işleyeceğiz.
🚨 Production'da en sık görülen hata
Yeni başlayan bir AD ekibinin yaptığı en sık hata: Kaggle sırasında accuracy'yi optimize etmek. PR-AUC veya recall@k optimization'ı gerekirken accuracy'ye yatırım, modelin asla canlıda çalışmamasıyla sonuçlanır. Görüşmelerde 'modelimiz %99 accurate' diyen ekipler en zayıf takımdır.

Klasik ML İmbalanced'de Neden Çöker?#

Standart sınıflandırıcılar (logistic regression, decision tree, neural net) bir loss function'ı minimize eder. Bu loss tipik olarak her örneğe eşit ağırlık verir:
Sonuç: N = 1.000.000 örnek arasında 1.000 anomali varsa, loss'un sadece %0.1'i pozitif sınıftan geliyor. Optimizer rasyonel olarak normal sınıfı mükemmel tahmin etmeye odaklanır; anomaliyi göz ardı eder — çünkü o şekilde toplam loss daha hızlı düşer.

Karar sınırı sapması#

Lojistik regresyonda karar sınırı (decision boundary), iki sınıfı ayıran hiperdüzlem. Imbalanced veride bu sınır çoğunluk sınıfına doğru kayar — çünkü çoğunluk verisini "ezmek" daha karlı.

Decision tree split#

Ağaç sınıflandırıcılar split kriterinde (Gini, entropy) çoğunluk dağılımına dayanır. Imbalanced veride leaf'lerin tamamı "normal" olarak işaretlenebilir, çünkü o şekilde Gini düşük.

Çözümler 4 ana kategoride:#

  1. Veriyi değiştir (Modül 3.2 — sampling: SMOTE, ADASYN)
  2. Loss function'ı değiştir (Modül 3.3 — class weight, focal loss)
  3. Modeli değiştir (Modül 7 — Isolation Forest gibi 'imbalanced-friendly' modeller)
  4. Etiketleme stratejisini değiştir (Modül 3.4 — semi-supervised, active learning)
Her birini sırayla işleyeceğiz.

Imbalanced Veri için Doğru Metrikler (Önizleme)#

Modül 4 tam ele alacak ama özet:
MetrikImbalanced'de ne yapar
AccuracyYanıltıcı — kullanma
Precision (P)Tespit edilenlerin ne kadarı doğru
Recall (R)Gerçek anomalilerin ne kadarı yakalandı
F1P ve R'nin harmonik ortalaması
PR-AUCImbalanced için altın standart
ROC-AUCYanıltıcı olabilir (high TNR baskın)
Balanced Accuracy(Sensitivity + Specificity) / 2
MCC (Matthews)Tek metrik için iyi seçim
Cost-basedİş kararlarıyla aligned
Hızlı kural: Imbalanced veride PR-AUC ve recall@k raporla. Accuracy ve ROC-AUC sadece destek metriği olarak göster.

Türkiye Sektörel Imbalance Manzarası (2026)#

Türkiye'deki gerçek imbalanced senaryolar:

Bankacılık#

  • Kart fraud: ~1:1.500 (Türkiye ortalama, Garanti BBVA 2024 raporu)
  • EFT/havale fraud: ~1:8.000
  • Hesap fraud (yeni hesap açma): ~1:200
  • AML SAR raporu: ~1:25.000

Telco#

  • Çağrı fraud (PRS): ~1:50.000
  • SIM swap fraud: ~1:30.000
  • Bayi fraud: ~1:500

Sigorta#

  • Otomobil claim fraud: ~1:30
  • Sağlık claim fraud: ~1:80
  • Yangın claim fraud: ~1:200

Üretim (Industry 4.0)#

  • Otomotiv son test defekti: ~1:1.000
  • Beyaz eşya kalite kontrol: ~1:500
  • Elektronik üretim: ~1:300

E-ticaret#

  • İade fraud (Trendyol/Hepsiburada): ~1:200
  • Promosyon kötüye kullanımı: ~1:100

Healthcare#

  • MR imaging lesion: ~1:50 (etiketli veride dengelenmiş)
  • ECG aritmi: ~1:30
Bu rakamlar eğitim setinde ne kadar pozitif örneğin olabileceğini doğrudan söyler. Modeli kurmaya başlamadan önce bu oranı bilmelisin.

Imbalance'ın Production'da Etkileri#

İmbalance sadece "metrik problemi" değil. Production yaşam döngüsünde etkileri:

1. Etiketleme maliyeti yüksek#

1.000.000 işlemden 1.000 anomali bulmak için tüm 1.000.000'unu incelemek gerekir. Bu, modül 1.3'te konuştuğumuz etiket pahalılığı sorununun ana kökü.

2. Eğitim setinde leakage riski#

Pozitif örnekler az olduğunda her birinin değeri yüksek. Train/test split'te yanlışlıkla aynı pozitifi her iki kümeye sızdırmak (data leakage) %30+ PR-AUC yapay artışıyla sonuçlanabilir. Stratified split şart.

3. Model varyansı yüksek#

1.000 pozitif örnekle eğitilmiş model, farklı 1.000 örnekle eğitilirse PR-AUC ±%5-10 oynayabilir. Cross-validation ve seed'lerle istikrar testi şart.

4. Drift detection zor#

Anomaly oranı zaten %0.1 ise, %0.05'e düştü mü artıyor mu söylemek için çok büyük örneklem gerekir. Modül 31'de drift detection'da bu işi göreceğiz.

5. Online inference performansı#

Çoğu işlem normal — modelin %99.9 zaman "negative" dönmesi inference mimarisinde bir cache fırsatı. Modül 32 deployment'ta bu trick'i göstereceğiz.

Imbalance Doğal Bir Olgu — Yapay Olarak Düzeltme Tuzakları#

Yeni başlayanların ortak yanlışı: eğitim setini dengelemek için pozitif örnekleri yapay olarak çoğaltmak veya negatifleri silmek ve sonra %95 accuracy almak.
Sorun: Test ortamı hâlâ %0.1 imbalanced. Eğitilmiş model bu dağılımda aşırı sık alarm üretir (eğitildiği %50-%50 dağılım canlı'da yok).

Doğru yaklaşım#

  • Train: dengeli (SMOTE/oversampling) veya cost-weighted
  • Validation: gerçek imbalanced dağılım
  • Test: gerçek imbalanced dağılım
  • Production: gerçek imbalanced dağılım
Bu sayede model dengeli öğrenir ama imbalanced ortamda doğru kalibre olur. Modül 3.2'de bu pipeline'ı detaylı kuracağız.
👉 Bir sonraki ders
Ders 3.2 — Sampling Stratejileri. SMOTE (Synthetic Minority Oversampling), ADASYN, Borderline-SMOTE, SMOTE-NC (Numeric + Categorical). Hangisi ne zaman? Sentetik veri üretmenin tuzakları ve doğru pipeline mimarisi.

Sık Sorulan Sorular

ROC-AUC'nin paydasında True Negative sayısı var; imbalanced'de TN sayısı çok büyük, küçük FP değişimleri ROC-AUC'yu çok az etkiler. PR-AUC sadece pozitif sınıf üzerine odaklanır (Precision = TP/(TP+FP), Recall = TP/(TP+FN)) — imbalanced'in gerçek hikayesini söyler. Modül 4'te detaylı göreceğiz.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

İlgili İçerikler