Dengesiz veri problemi olarak bilinen sınıf dengesizliği, veri bilimi projeleri çerçevesinde dikkat edilmesi gereken bir sorundur. Sınıflandırma algoritmalarının çoğu, eğitim setlerinin iyi dengelendiğini varsayar. Algoritmaların amacı, genellikle, doğru tahmin oranını maksimize etmektir. Ancak varsayılan bu dengeli dağılım çoğu zaman gerçek hayattaki veri kümelerinde bulunmaz. Sınıflardan biri çok az örnekle temsil edilebilirken, diğer sınıf çok sayıda örnekle temsil edilir. Bu durumda sınıflandırmada sorunlar ortaya çıkabilir. Yani dengesiz veri seti, sınıflandırma problemlerinde farklı sınıflar için eşit sayıda gözlem olmaması durumunu tarif eder.
Örneğin bir veri seti düşünelim:
- 15 bin gözlem içersin.
- Kullanıcıların sahte hesap olup olmadığını tahmin etmeye çalışıyor olalım.
- Hedef değişkendeki ‘1’ler sahte hesapları, ‘0’lar gerçek kullanıcıları temsil etsin.
Eğer burada sahte hesaplar ile gerçek kullanıcıların sayıları birbirine eşit değilse (hedef değişkende 0–1 dengesi eşit değilse) dengesiz veri seti ile karşı karşıyayız demektir. Zaten bir düşünecek olursanız, dengesiz veri çoğu sınıflandırma probleminin doğasında var. Sahte hesaplar gerçek hesaplardan daha az olur, biz de bu az gözleme sahip sınıfı tahmin etmeye çalışırız.
Dengesiz veri seti her zaman drawback olarak karşımıza çıkmayabilir. Sınıflar arası fark küçükse göz ardı edilebilir.
Peki ama dengesiz veri seti ne zaman bir drawback olarak karşımıza çıkar?
Accuracy yani doğruluk, modelin doğru tahmin ettiği örneklerin toplam örneğe oranıdır. Ancak doğruluk her zaman güvenilir bir metrik değildir. Özellikle sınıflar dengesizse (örneğin verilerin %95’i “0”, sadece %5’i “1” ise), mannequin sadece “0” sınıfını tahmin ederek %95 doğruluk elde edebilir, ama bu yüksek doğruluk yanıltıcıdır çünkü mannequin azınlık sınıfını tamamen göz ardı etmektedir.
İşte bu duruma “Accuracy Paradox” yani “Doğruluk Paradoksu” denir.
Accuracy, tahminlerin yüzde kaçının doğru olduğunu belirtir. Dengesiz veri setlerinde accuracy yüksek çıkar, biz de çok iyi tahmin yaptık diye düşünürüz. İşte bu duruma accuracy paradox denir. Tahmin doğruluğunu gösteren bu metrik dengesiz veri setlerinde anlamsız olabilir. Recall ve precision değerleri önem kazanır.
Yani, accuracy yüksek fakat recall veya precision düşük çıkıyorsa burada bir dengesizlik var sanırım demelisiniz!
Örneğim 100 tane gözlem içinde 95 regular işlem, 5 dolandırıcılık işlemi olsun. Burada zaten tüm işlemlerin regular olduğunu belirtirsek accuracy değerimiz yüzde 95 çıkar.
- Daha fazla veri toplama: Az gözlem bulunan sınıftaki gözlem sayısı artırılabilir.
- Undersampling: Azınlık sınıfta yeteri sayıda veri varsa, çoğunluk sınıfının gözlem sayısı rastgele seçim yapılarak azaltılabilir. Veri boyutu az değilse tercih edilir, bir miktar bilgi kaybı göze alınır.
- Oversampling: Kanaatimce undersampling yapılamıyorsa tercih edilmelidir. Overfit’e sebebiyet verme ihtimali çok yüksektir. Azınlık sınıftaki gözlem sayısı yeterli değilse, bu sınıftaki gözlemlerin kopyası oluşturularak çoğunluk sınıf sayısına eşitlenebilir.
- Biraz oversampling biraz undersampling: Veri setindeki azınlık sınıftaki gözlem sayısı az ise, oversampling yapılması gerektiyse, önce çoğunluk sınıf için undersampling sonra azınlık sınıf için oversampling uygulanabilir.
Resampling teknikleri arasında en sık kullanılan yöntem ise SMOTE (Artificial Minority Oversampling Method) olarak bilinir. Klasik veri kopyalama şeklinde hareket etmez. Veri kopyalama modele yeni bilgi vermez.
- Okay en yakın komşu algoritmasını kullanır.
- Öncelikle azınlık sınıftan random veri seçer.
- Seçilen random veri etrafındaki komşuları seçer. Komşu ile seçilen veri arasındaki yerde veri üretir.
- Bu işlem çoğunluk sınıftaki gözlem sayısına ulaşana dek tekrar eder.
SMOTE sadece continous verilere uygulanabilirken SMOTE-NC (Artificial Minority Oversampling Method — Nominal Continous) hem nominal hem continous verilere uygulanabiliyor. Bunların dışında ise Borderline-SMOTE, SVM-SMOTE ve ADASYN gibi resampling teknikleri bulunmakta.