Dengesiz (imbalanced) bir veri setiyle nasıl başa çıkarsınız? Örneğin %0.5 fraud oranı.
Cevap
Önce doğru metriği seçmek, sonra veri, algoritma ve karar eşiği seviyesinde müdahale etmek gerekir.
1. Metrik
Accuracy kullanma. PR-AUC, recall@sabit precision, F1 veya iş maliyetine dayalı bir metrik seç. Split'leri stratified yap.
2. Veri seviyesi
- Undersampling: Çoğunluk sınıfından örnek atmak. Hızlı, ama bilgi kaybı var.
- Oversampling: Azınlık sınıfını çoğaltmak veya SMOTE ile sentetik örnek üretmek. Sadece train fold'unda yapılmalı, yoksa leakage olur.
- Daha fazla azınlık örneği toplamak çoğu zaman en etkili yoldur.
3. Algoritma seviyesi
- Class weight: Loss'ta azınlık sınıfa daha büyük ağırlık.
class_weight="balanced", XGBoost'tascale_pos_weight = negatif/pozitif. - Focal loss: Derin öğrenmede kolay örneklerin ağırlığını azaltır.
- Ağaç tabanlı ensemble modeller genelde iyi bir başlangıçtır.
4. Eşik ayarı
Model olasılık üretir, karar eşiği sizin seçiminizdir. Validation setinde PR eğrisinden iş hedefine (örneğin "precision en az %80 olsun") uygun eşiği seçin.
from sklearn.metrics import precision_recall_curve
p, r, th = precision_recall_curve(y_val, proba)
best = th[(p[:-1] >= 0.80).argmax()] # precision >= 0.8 sağlayan ilk eşikDikkat: Resampling veya class weight olasılıkların kalibrasyonunu bozar. Olasılık değerleri önemliyse sonradan kalibrasyon (Platt, isotonic) uygulayın.
İlgili Makine Öğrenmesi soruları
- Hiperparametre optimizasyonunu nasıl yaparsınız? Grid search, random search ve Bayesian optimization'ı karşılaştırın.
- Feature scaling nedir? Standardization ile normalization arasındaki fark nedir ve hangi modeller ölçeklendirme gerektirir?
- PCA (Principal Component Analysis) nasıl çalışır? Ne zaman kullanılır, ne zaman kullanılmamalıdır?
- NumPy kullanarak k-means algoritmasını sıfırdan yazın. k değerini nasıl seçersiniz ve algoritmanın sınırlamaları nelerdir?
- XGBoost ve LightGBM klasik gradient boosting'den hangi açılardan farklıdır? En önemli hiperparametreleri nelerdir?
- Random Forest ile Gradient Boosting arasındaki fark nedir? Bagging ve boosting'i karşılaştırın.
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.