Makine öğrenmesi modellerinde veri dengesizliği, bir sınıfın diğerine kıyasla çok daha az örneğe sahip olduğu durumlarda ortaya çıkar. Bu durum, özellikle dolandırıcılık tespiti, nadir hastalık teşhisi veya makine arızası tahmini gibi alanlarda modelin azınlık sınıfını doğru şekilde öğrenememesine yol açar. Standart sınıflandırma algoritmaları çoğunluk sınıfına yönelir ve yanıltıcı derecede yüksek doğruluk üretir. Neyse ki, veri dengesizliğini ele almak için kanıtlanmış stratejiler vardır: yeniden örnekleme yöntemleri, maliyet duyarlı öğrenme ve topluluk yöntemleri. Bu rehber, her yaklaşımı ayrıntılı olarak açıklıyor ve pratik uygulama ipuçları sunuyor.
Veri Dengesizliğinin Teşhisi: Sorunu Tanıma
Veri dengesizliğiyle başa çıkmadan önce, sorunun varlığını doğru bir şekilde teşhis etmek gerekir. Sınıf dağılımını kontrol etmek için veri setinizdeki her sınıfın örnek sayısını hesaplayın. Dengesizlik oranı (çoğunluk sınıfı örnek sayısı / azınlık sınıfı örnek sayısı) 10:1 veya daha yüksekse ciddi bir dengesizlik söz konusudur.
Teşhis için sadece doğruluk metriklerine güvenmeyin. Bunun yerine, hassasiyet (precision), duyarlılık (recall), F1-skoru ve ROC-AUC gibi metrikleri kullanarak model performansını değerlendirin. Örneğin, %95 doğruluk oranına sahip bir model tüm örnekleri çoğunluk sınıfına atayarak bu değere ulaşmış olabilir. Bu yüzden, azınlık sınıfına odaklanan metrikler kritik öneme sahiptir.
Veri dengesizliği problemlerinde, modelin genel doğruluğu yerine azınlık sınıfının F1-skorunu ve recall değerini izlemek daha anlamlıdır. Yüksek doğruluk, dengesiz bir veri setinde aldatıcı olabilir.
Yeniden Örnekleme Yöntemleri
Rastgele Alt Örnekleme (Random Undersampling)
Bu yöntem, çoğunluk sınıfından rastgele örnekler çıkararak sınıfları dengelemeyi amaçlar. Uygulaması basittir ancak önemli bilgi kaybına neden olabilir. Özellikle az sayıda örneğe sahip veri setlerinde modelin varyansını artırabilir. Yine de, yüksek boyutlu verilerde hızlı bir çözüm olarak düşünülebilir.
Rastgele Üst Örnekleme (Random Oversampling)
Azınlık sınıfındaki örnekleri rastgele kopyalayarak çoğunluk sınıfı sayısına yaklaştırır. Bu yöntem bilgi kaybını önler ancak aşırı uyuma (overfitting) yol açabilir. Kopyalanan örnekler sayesinde model aynı veri noktalarını ezberleme eğilimi gösterir.
SMOTE (Synthetic Minority Over-sampling Technique)
SMOTE, azınlık sınıfı için sentetik örnekler üreten popüler bir yöntemdir. Mevcut azınlık örnekleri arasındaki özellik uzayında enterpolasyon yaparak yeni örnekler oluşturur. SMOTE, rastgele üst örneklemeye kıyasla aşırı uyum riskini azaltır. Bununla birlikte, yüksek boyutlu verilerde gürültüye neden olabilir. SMOTE varyantları arasında Borderline-SMOTE ve ADASYN bulunur. Borderline-SMOTE, sadece sınır bölgelerindeki örnekleri kullanarak daha hedefli sentetik veri üretir.
SMOTE'u uygularken dikkat edilmesi gereken nokta, eğitim ve test verilerinin ayrımını korumaktır. SMOTE yalnızca eğitim setine uygulanmalı, test setine dokunulmamalıdır. Aksi takdirde, modelin gerçek performansı yanıltıcı olur.
Maliyet Duyarlı Öğrenme (Cost-Sensitive Learning)
Bu yaklaşımda, sınıflandırma algoritmasına farklı hata türleri için farklı maliyetler atanır. Örneğin, azınlık sınıfını yanlış sınıflandırmanın maliyeti, çoğunluk sınıfını yanlış sınıflandırmaktan daha yüksek belirlenir. Algoritma, toplam maliyeti minimize edecek şekilde öğrenir.
Maliyet duyarlı öğrenme, doğrudan algoritma düzeyinde (cost-sensitive loss function) veya bir meta yöntem olarak (örneğin, ağırlıklandırılmış eğitim örnekleri) uygulanabilir. XGBoost, LightGBM ve CatBoost gibi modern gradient boosting kütüphaneleri, scale_pos_weight veya class_weight parametreleriyle bu desteği sunar. Örneğin, bir sınıflandırma modelinde class_weight='balanced' ayarı, sınıf frekanslarına ters orantılı ağırlıklar atar.
Topluluk Yöntemleri (Ensemble Methods)
Balanced Random Forest
Her rastgele orman ağacı için çoğunluk sınıfından alt örnekleme yaparak dengeli bir eğitim seti oluşturur. Bu yöntem, standart rastgele ormana kıyasla dengesiz verilerde daha iyi sonuç verir.
EasyEnsemble ve Balance Cascade
EasyEnsemble, çoğunluk sınıfından birkaç alt küme çıkarır ve her biriyle bir sınıflandırıcı eğitir. Sonuçlar oylama ile birleştirilir. Balance Cascade ise her aşamada yanlış sınıflandırılan çoğunluk örneklerini bir sonraki aşamaya dahil ederek kademeli bir yaklaşım sunar.
Veri Seviyesi ve Algoritma Seviyesi Yaklaşımlarının Birleştirilmesi
En iyi sonuçlar genellikle birden fazla tekniğin birleştirilmesiyle elde edilir. Örneğin, önce SMOTE uygulayıp ardından maliyet duyarlı bir sınıflandırıcı kullanmak, her iki yöntemin avantajlarını bir araya getirebilir. Ayrıca, hiperparametre optimizasyonu sırasında dengesizlik metriklerini (F1-skoru, AUC) göz önünde bulundurmak kritiktir. Dilerseniz, Hiperparametre Optimizasyonu rehberimizi inceleyerek uygun stratejiyi seçebilirsiniz.
Model Değerlendirme ve Çapraz Doğrulama Stratejileri
Dengesiz veri setlerinde model değerlendirirken k-fold çapraz doğrulama kullanmak, her bir fold'da sınıf dağılımını korumak için katmanlı (stratified) örnekleme yapmak önemlidir. Standart k-fold, dengesiz verilerde yanıltıcı sonuçlar verebilir çünkü bazı katmanlar azınlık sınıfını hiç içermeyebilir. Bu noktada Hold-out, K-fold ve Leave-One-Out Cross-Validation karşılaştırmamızda bu konuyu ayrıntılı ele alıyoruz.
Ayrıca, aşırı uyumu önlemek için eğitim sırasında erken durdurma ve düzenlileştirme tekniklerini kullanmayı unutmayın. SMOTE ile üretilen sentetik örnekler, modelin gerçek dağılımı yansıtmayan gürültü ekleyebilir; bu nedenle düzenlileştirme, modelin genelleme yeteneğini korumaya yardımcı olur.
Sık Yapılan Hatalar ve Dikkat Edilmesi Gerekenler
- Test setine dokunmak: SMOTE gibi yeniden örnekleme yöntemlerini test setine uygulamak, modelin gerçek performansını şişirir. Tüm veri ön işleme adımları yalnızca eğitim setinde yapılmalıdır.
- Aşırı uyuma odaklanmamak: Yeniden örnekleme sonrası modelin eğitim ve validasyon performansı arasında büyük fark olursa, düzenlileştirme veya daha basit bir model kullanın.
- Hiperparametreleri metrikle uyumlu seçmemek: Hiperparametre optimizasyonunda hedef metrik olarak doğruluk yerine F1-skoru veya recall-odaklı bir metrik seçin.
Sonuç: Doğru Stratejiyi Seçmek
Veri dengesizliği, sihirli bir çözümü olmayan bir problemdir. En iyi yaklaşım, veri setinizin özelliklerine, problem türüne ve hedef metriklerinize bağlıdır. Küçük veri setlerinde maliyet duyarlı öğrenme veya SMOTE etkili olabilirken, büyük veri setlerinde topluluk yöntemleri daha başarılı sonuç verebilir. Her zaman deneyler yapın, farklı teknikleri kombinleyin ve sonuçları dikkatle değerlendirin. Unutmayın: Dengesiz bir veri setinde yüksek doğruluk, başarı anlamına gelmez.
Daha fazla ipucu ve araç için Yapay Zeka Araçları ile Verimlilik Artırma yazımıza da göz atabilirsiniz.
Sık Sorulan Sorular
Veri dengesizliği en çok hangi alanlarda görülür?
Dolandırıcılık tespiti, nadir hastalık teşhisi, makine arızası tahmini, müşteri kaybı analizi gibi nadir olayların tahmin edildiği alanlarda sıkça görülür.
SMOTE ile rastgele üst örnekleme arasındaki temel fark nedir?
SMOTE, var olan azınlık örnekleri arasında enterpolasyon yaparak sentetik örnekler üretirken, rastgele üst örnekleme mevcut örnekleri kopyalar. SMOTE aşırı uyum riskini azaltır.
Maliyet duyarlı öğrenme nasıl uygulanır?
Algoritmanın kayıp fonksiyonuna sınıf bazında ağırlıklar eklenir veya eğitim örneklerine farklı maliyetler atanır. XGBoost'ta 'scale_pos_weight' parametresi kullanılabilir.
Dengesiz veri setlerinde hangi metrik kullanılmalıdır?
F1-skoru, hassasiyet, duyarlılık (recall) ve ROC-AUC gibi metrikler, doğruluktan daha güvenilirdir. Özellikle azınlık sınıfı recall değeri önemlidir.
SMOTE uygularken nelere dikkat edilmeli?
SMOTE yalnızca eğitim setine uygulanmalı, test setine asla dokunulmamalıdır. Ayrıca yüksek boyutlu verilerde gürültü yaratabileceği için düzenlileştirme kullanılmalıdır.






