EYVAH ! VERİ SETİM İMBALANCE
Yazıyı okumadan projeyi incelemek isterseniz buradan ulaşabilirsiniz.
Hazır veri setlerinde her şey mükemmele yakındır bu yüzden bu tarz veri setleriyle çalışırken çoğu şey istediğimiz şekilde sonuç verir. Ancak gerçek hayat verileri insana neredeyse hiç bir şey bilmiyormuş gibi hissettirir. Korelasyonlu eksik gözlemler, çift gelmiş veriler ya da imbalance veri setleri gerçek hayat verilerinde karşılaşabileceğimiz sorunların yalnızca birkaçıdır. Bu yazıda sizlere imbalance verilerle çalışmak zorunda kaldığınızda neler yapabileceğinizden bahsedeceğim.
İmbalance (Dengesiz) Veri Ne Demek?
Sınıflandırma problemlerinde tahmin (target) değişkenlerinin gözlem sıklığı arasında çok fark olduğunda veri setinin dengesizliği kavramını kullanırız. Nasıl yani ? Şöyle ki bir bankacılık uygulamasında sahtecilik hareketlerini tespit etmeye çalıştığımızı düşünelim. Elimizde sahtecilik hareketlerinin 0, normal kullanıcı hareketlerinin 1 olarak etiketlendiği bir veri seti olsun. Sahtecilik girişimi ile çok sık karşılanmayacağı için 0 etiketinden çok az, normal davranışları tanımlayan 1 etiketinden ise çok fazla olacaktır. Zihnimizde daha net canlanması için 1000 gözlem bulunan verinin 950 tanesinin 1, 50 tanesinin 0 olduğunu varsayalım. Böyle bir durumda makine öğrenmesi algoritmalarının 1 etiketini mükemmele yakın asıl tahmin amacımız olan 0 etiketinin ise hiç öğrenilmediğini görebilirsiniz. Şimdi gelin hep birlikte böyle bir durumda nelere dikkat etmemiz gerekir onlara bakalım.
1. Model değerlendirme metriklerinizi doğru seçmeye özen gösterin.
Bu kavramlar biraz karışık olduğu için depresyon hastası teşhisi üzerinden gidelim.
- True Negative : Gerçekte depresyon hastası olmayıp depresyonda değil olarak tahmin edilmesi.
- False Positive : Gerçekte depresyon hastası olmayıp depresyonda olarak tahmin edilmesi.
- False Negative : Gerçekte depresyon hastası olan birinin depresyonda değil olarak tahmin edilmesi.
- True Positive : Gerçekte depresyon hastalığına sahip olan birinin depresyon hastası olarak tahmin edilmesi.
- Doğru sınıflandırılan örneklerin yüzdesini veren metriktir.
- İmbalance verilerde gözlemlerin çoğunluğunu bir sınıf oluşturduğu için bu metrik üzerinden yorumda bulunmak doğru olmaz.
- False positive olarak yapılan tahminlerin maliyetinin ölçüsü.
- False negative olarak yapılan tahminlerin maliyetinin ölçüsü.
- Precision ve Recall değerlerinin harmonik ortalaması alınarak elde edilen metriktir.
- İmbalance veri setlerinde F1 Score ile yorum yapmak bizim için en doğru metrik seçimlerinden biridir.
2. Resampling (Yeniden Örnekleme) yapın.
Resampling dengesiz veri kümeleri üzerinde çeşitli yöntemler uygulayarak yeniden örnekleme yaparak veri setini nispeten en doğru şekilde dengeleme amacıyla yapılır. Gelin Resampling yöntemlerini inceleyelim.
2.1 OVERSAMPLING
Burada temel amaç görselden de anlaşılacağı gibi az olan sınıftan rasgele örneklemeler yaparak gözlemlerin yeniden veri setine eklenerek iki sınıf arasında dengeyi sağlaması.
!NOT: Oversampling uygulanan datada overfitting durumu gözlenebilir. Yapılan çalışmada buna dikkat edilmelidir.
Oversampling kendi içinde farklı teknikler kullanılarak gerçekleştirilebilir.
- Naive Random Over-Sampling: Veri setinin küçük olduğu durumlarda kullanılması tavsiye edilir. Örnekler arasında rasgele seçimler yapılarak veri yeniden ilgili sınıfa eklenir.
- SMOTE ve ADASYN ile Over-Sampling: Overfitting durumunu kısmen engelleyen bir yöntemdir. SMOTE Oversampling yönteminde k-en yakın komşu algoritması uygulanarak az olan sınıftan birbirine benzeyen gözlemlerin özellikleri kullanılarak sentetik veriler oluşturulur. ADASYN Oversampling ile ise interpolasyon yöntemleri kullanılarak az olan sınıftan sentetik veri üretimi yapılır.
2.2 UNDERSAMPLING
Çok büyük veri setlerinde az sınıf diğer kategoriye göre az ise (mesela 100.000 gözleme sahip bir veride 0 sınıfından 15.000, 1 sınıfından 85.000 veri varsa) yüksek olan sınıf gözlemleri düşük olan sınıfa indirgenecek şekilde yeniden örnekleme yapma yöntemidir.
Undersampling kendi içerisinde farklı yöntemler kullanılarak gerçekleştirilebilir.
- Cluster Centroids: Kümeleme yöntemiyle önemli ve önemsiz veriler belirlenerek önemsiz olan veriler veri setinden atılarak dengelenmeye çalışılır.
- Random Undersampling: Veri seti içinden rasgele örnekler seçilerek silinir ve iki sınıf eşitlenir. Bu yöntemde veriler rasgele seçildiği için bilgi kaybına sebep olabilir.
- NearMiss: Temelinde KNN Algoritması bulunur. Bilgi kaybını önlemeye yarayan bir yöntemdir.
- Tomek Links: Her iki sınıftan uzaklık olarak birbirine en yakın olan gözlemler tespit edilerek veri setinden silinerek dengeleme yapılır.
3. Sınıf Ağırlıklarını Ayarlamak (Adjusted Class Weights)
‘class_weight’ parametresi aracılığıyla ilgilendiğimiz sınıfın ağırlıklarını değiştirerek veri seti dengelenebilir.
Projeye buradan ulaşabilirsiniz.
Herkese Keyifli Çalışmalar Dilerim :)
Web sitemi incelemek için :
Diğer Yazılarımı Okumak İsterseniz;