Dengesiz Veri Setleri ile Nasıl Başa Çıkılır?
Kredi Kartı Hırsızlığı Üzerine Bir İnceleme
Dengesiz veri setleri, özellikle sınıflandırma problemlerinde karşılaşılan yaygın bir zorluktur. Çoğunluk sınıfının baskın olduğu veri setlerinde, azınlık sınıfı genellikle modelin tahmin yeteneklerinden faydalanamaz. Bu duruma "class imbalance" adı verilir ve özellikle kredi kartı hırsızlığı gibi gerçek dünya senaryolarında sıkça karşımıza çıkar.
Dengesiz Veri Nedir?
Dengesiz veri setleri, sınıfların temsil edilme oranlarının eşit olmadığı veri kümeleridir. Örneğin, kredi kartı hırsızlığı senaryosunda, dolandırıcılık içermeyen işlemler genellikle çok daha fazladır, dolandırıcılık içeren işlemler ise çok nadirdir. Bu durumda model, dolandırıcılık içermeyen işlemleri çok daha kolay bir şekilde doğru tahmin edebilir, fakat azınlıkta olan dolandırıcılık işlemlerinde başarısız olabilir.
Bu dengesizliği göz ardı etmek, modelin gerçek dünyadaki performansını olumsuz etkileyebilir.
Kredi Kartı Hırsızlığı Veri Seti Üzerinde Çalışmak
Kaggle'daki Kredi Kartı Hırsızlığı projemde bu durumu yakından inceledim. Veri seti, dolandırıcılık işlemlerinin sadece %0.17 gibi çok küçük bir oranını içeriyordu. Böyle bir dengesizlikle çalışırken dikkat edilmesi gereken noktalar şunlardır:
1. Model Performansını Doğru Değerlendirmek
Klasik doğruluk (accuracy) metriği, dengesiz veri setlerinde yanıltıcı olabilir. Örneğin, tüm işlemlerin dolandırıcılık olmadığını tahmin eden bir model, %99.83 doğruluğa sahip olabilir. Ancak bu model, dolandırıcılık işlemlerini hiç doğru tahmin etmemiş olur. Bu yüzden precision, recall, F1-score gibi daha kapsamlı metriklere odaklanmak daha doğrudur.
2. Dengesiz Veri ile Başa Çıkma Yöntemleri
Dengesiz veri ile başa çıkmak için kullanabileceğiniz birkaç yöntem bulunur:
Resampling Yöntemleri:
- Oversampling (Azınlık Sınıfını Artırma): Azınlık sınıfındaki örnekleri çoğaltarak dengesizliği gidermeye çalışabilirsiniz. Bunun en popüler yöntemlerinden biri SMOTE (Synthetic Minority Over-sampling Technique) tekniğidir. SMOTE, mevcut azınlık sınıfı verilerinden yeni sentetik örnekler üreterek veri setini dengeler.
- Undersampling (Çoğunluk Sınıfını Azaltma): Çoğunluk sınıfındaki örnekleri azaltarak veri setini dengeleyebilirsiniz. Ancak bu yöntem, veri kaybına neden olabileceği için dikkatle uygulanmalıdır.
- Model Tuning: Algoritmaların azınlık sınıfa daha fazla dikkat etmesi için class_weight parametresini kullanabilirsiniz. Bu yöntem, modelin azınlık sınıftaki hatalara daha fazla önem vermesini sağlar.
3. Algoritma Seçimi
Dengesiz veri setlerinde bazı algoritmalar diğerlerinden daha iyi performans gösterebilir. Örneğin, XGBoost ve Random Forest gibi algoritmalar, sınıflar arası dengesizlikle daha iyi başa çıkabilir. Kredi kartı hırsızlığı projemde Logistic Regression ve Random Forest kullandım ve sonuçları karşılaştırarak en iyi performansı Random Forest ile elde ettim.
Sonuç
Dengesiz veri setleri, doğru yaklaşımlar kullanılmadığında yanıltıcı sonuçlar verebilir. Ancak doğru metrikleri kullanarak, veri setini dengeleyerek ve uygun algoritmalarla çalışarak bu sorunun üstesinden gelmek mümkündür. Kredi kartı hırsızlığı projesi gibi örnekler, gerçek dünya senaryolarında dengesiz veri setleriyle başa çıkmanın zorluklarını ve çözümlerini anlamak için harika fırsatlar sunar.
İlgili araç: Elinizdeki veri setinin gerçekten dengesiz olup olmadığını hızlıca ölçmek için CSV Veri Seti Profili aracını kullanın — kategorik sütunlarda sınıf dağılımını ve en sık/en seyrek sınıf oranını gösterir.
Bu yazı Ahmet Bilgiç tarafından yazılmış olup ilk olarak Medium'da yayımlanmıştır. Diğer yazılar için: medium.com/@ahmet_bilgic07