Dengesiz veri setleri, sınıflandırma modellerinin başarımını ciddi şekilde düşüren yaygın bir sorundur. Bir sınıf diğerlerine göre çok daha az örneğe sahip olduğunda, model çoğunluk sınıfına yönelir ve azınlık sınıfını yok sayar. Bu yazıda, dengesiz veri setleriyle başa çıkmak için veri düzeyinde, algoritma düzeyinde ve hibrit yaklaşımları kapsayan 10 pratik tekniği adım adım açıklıyoruz. Ayrıca uygulamalarınızda rehber olarak kullanabileceğiniz bir kontrol listesi sunuyoruz.
Dengesiz Veri Seti Nedir ve Neden Önemlidir?
Dengesiz veri seti, sınıflar arasında büyük oransal fark olduğu durumdur. Örneğin, dolandırıcılık tespitinde %99 işlem normal, %1 şüpheli olabilir. Model tüm örnekleri normal sınıfa atarsa %99 doğruluk elde eder, ancak hiçbir dolandırıcılığı yakalayamaz. Bu nedenle standart doğruluk metriği yanıltıcıdır; kesinlik, duyarlılık, F1 puanı gibi metrikler kullanılmalıdır.
10 Pratik Teknik: Veri ve Algoritma Düzeyinde
Aşağıdaki teknikleri projenizin ihtiyaçlarına göre birleştirebilirsiniz. Her tekniğin avantajları ve dezavantajları vardır.
Veri Düzeyinde Teknikler
- Rastgele Alt Örnekleme (Random Undersampling): Çoğunluk sınıfından rastgele örnekler çıkararak sınıfları dengelemek. Artı: Hızlı ve basit. Eksi: Önemli bilgiler kaybolabilir.
- Rastgele Üst Örnekleme (Random Oversampling): Azınlık sınıfındaki örnekleri kopyalayarak çoğaltmak. Artı: Kayıpsız. Eksi: Aşırı öğrenmeye neden olabilir.
- SMOTE (Synthetic Minority Over-sampling Technique): Azınlık sınıfındaki mevcut örnekler arasında enterpolasyon yaparak sentetik örnekler üretmek. Artı: Aşırı öğrenmeyi azaltır. Eksi: Gürültülü verilerde sorun yaratabilir.
- SMOTE Tabanlı Varyantlar: Borderline-SMOTE, ADASYN gibi yöntemler sınır bölgelerine odaklanarak daha etkili sentetik örnekler üretir.
- Veri Artırma (Data Augmentation): Özellikle görüntü veya metin verilerinde döndürme, kırpma, eşanlamlı değiştirme gibi yöntemlerle azınlık sınıfını zenginleştirin.
Algoritma Düzeyinde Teknikler
- Maliyet Duyarlı Öğrenme (Cost-Sensitive Learning): Azınlık sınıfının yanlış sınıflandırma maliyetini artırarak modelin bu sınıfa odaklanmasını sağlayın. Rastgele Orman gibi modellerde class_weight parametresi kullanılabilir.
- Ağırlıklı Kayıp Fonksiyonları: Sinir ağlarında odak kaybı (focal loss) gibi kayıp fonksiyonları, zor sınıflandırılan azınlık örneklerine daha fazla ağırlık verir.
- Topluluk Yöntemleri (Ensemble Methods): Hiperparametre optimizasyonu ile birlikte kullanılan Balanced Random Forest, Easy Ensemble gibi yöntemler hem aşırı öğrenmeyi engeller hem de azınlık sınıfını daha iyi temsil eder.
- Tek Sınıflı Öğrenme (One-Class Learning): Çoğunluk sınıfını veri olarak kabul edip azınlık sınıfını aykırı (outlier) olarak tespit eden One-Class SVM gibi algoritmalar.
Hibrit ve Gelişmiş Yaklaşımlar
- Filtreleme Yöntemleri: Tomek Bağlantıları ile gürültülü örnekleri temizleyip ardından SMOTE uygulayarak hem veri temizliği hem dengeleme yapın.
- Anomali Tespiti ile Birleştirme: Özellikle çok dengesiz durumlarda (örneğin 1000:1) azınlık sınıfını anomalı olarak modelleyin.
Değerlendirme ve Kontrol Listesi
Dengesiz veri setlerinde model başarımını değerlendirmek için karmaşıklık matrisi, kesinlik (precision), duyarlılık (recall), F1 puanı ve AUC-ROC gibi metrikleri kullanın. Doğruluk (accuracy) her zaman anlamlı değildir. Aşağıdaki kontrol listesi, projenizde adım adım ilerlemenize yardımcı olacaktır.
- ☐ Veri keşfi: Sınıf dağılımını hesaplayın ve dengesizlik oranını belirleyin.
- ☐ Değerlendirme metriği seçin: F1 puanı, ROC-AUC veya hassasiyet/duyarlılık ikilisi.
- ☐ Veri düzeyinde dengeleme: SMOTE, rastgele üst/alt örnekleme veya veri artırmayı deneyin.
- ☐ Algoritma düzeyinde düzenleme: Maliyet duyarlı kayıp veya class_weight parametresini ayarlayın.
- ☐ Topluluk yöntemlerini uygulayın: Balanced Random Forest, XGBoost’ta scale_pos_weight kullanın.
- ☐ Modeli çapraz doğrulayın: Katmanlı çapraz doğrulama (stratified cross-validation) ile her katmanda sınıf oranını koruyun.
- ☐ Hibrit yöntemleri deneyin: SMOTE + Tomek Links veya SMOTE + ENN (Edited Nearest Neighbors).
- ☐ Hiperparametre optimizasyonu: Random search veya Bayesian optimization ile en iyi ayarları bulun.
- ☐ Sonuçları doğrulayın: Farklı metriklerle performansı raporlayın ve yanlış sınıflandırma maliyetlerini göz önünde bulundurun.
- ☐ Veri artırmayı unutmayın: Özellikle görüntü, ses veya metin verilerinde azınlık sınıfını artırmak için sentetik veri üretin.
Aşırı öğrenmeyi önleme tekniklerini de dengesiz veri problemiyle birleştirmek, modelin genelleme yeteneğini artırabilir. Ayrıca, Prompt engineering gibi konular dengesiz veriyle doğrudan ilgili olmasa da, doğal dil işleme projelerinde sınıf dengesizliği yaygındır.
Sık Yapılan Hatalar ve Dikkat Edilmesi Gerekenler
- Veri sızıntısı: Sentetik veri üretimini sadece eğitim setine uygulayın, test setine dokunmayın.
- Metrik yanılgısı: Doğruluk yerine F1 puanına odaklanın; yanlış negatif maliyeti yüksek projelerde recall’ı ön plana çıkarın.
- Aşırı örnekleme kaynaklı aşırı öğrenme: Özellikle rastgele üst örneklemede düzenlileştirme (regularization) ekleyin.
- Çapraz doğrulamada hata: Sentetik veri oluşturma işlemini her katlamada eğitim setine uygulayın, test setini orijinal haliyle bırakın.
Dengesiz veri setleri, doğru tekniklerle yönetildiğinde model başarımınızı önemli ölçüde artırabilir. Unutmayın, her veri seti farklıdır; bu nedenle birden fazla yöntemi deneyip sonuçları karşılaştırmak en iyisidir.
Sık Sorulan Sorular
Dengesiz veri setlerinde neden doğruluk metriği yanıltıcıdır?
Doğruluk, çoğunluk sınıfını doğru tahmin eden ancak azınlık sınıfını tamamen kaçıran bir modelde bile yüksek çıkabilir. Örneğin %99-1 dengesinde model her şeyi çoğunluk sınıfı olarak tahmin ederse %99 doğruluk elde eder, ancak azınlık sınıfını hiç yakalayamaz. Bu nedenle F1 puanı, kesinlik ve duyarlılık gibi metrikler tercih edilmelidir.
SMOTE her zaman en iyi yöntem midir?
SMOTE, birçok durumda etkili olsa da gürültülü verilerde sentetik örneklerin sınırları bulanıklaştırmasına neden olabilir. Ayrıca yüksek boyutlu verilerde başarımı düşer. SMOTE'yi Tomek Links gibi temizleme yöntemleriyle birleştirmek veya veri yapısına göre ADASYN, Borderline-SMOTE gibi varyantları kullanmak daha iyi sonuç verebilir.
Hiperparametre optimizasyonu dengesiz veri setlerinde nasıl uygulanmalıdır?
Katmanlı çapraz doğrulama (stratified k-fold) kullanarak her katmanda sınıf oranını koruyun. Arama sırasında optimizasyon metriği olarak F1 puanı veya ROC-AUC gibi dengesizliğe duyarlı metrikler seçin. Grid search, random search veya Bayesian optimization yöntemleriyle maliyet duyarlı parametreleri (örneğin class_weight) de araştırın.
Veri artırma dengesiz veri setlerinde işe yarar mı?
Evet, özellikle görüntü, metin veya ses verilerinde azınlık sınıfını artırmak için veri artırma teknikleri (döndürme, kesme, eş anlamlı değiştirme) kullanılabilir. Bu, modelin çeşitliliğini artırır ve aşırı öğrenmeyi azaltır. Ancak sentetik veri üretirken orijinal dağılımı bozmamaya dikkat etmek gerekir.






