Anomali Tespiti 2.Bölüm (Standardizasyon ve Normalizasyon İşlemleriyle Tekli Anomali İncelemesi)
Merhabalar, Anomali Tespiti 1.Bölüm (Tekli Anomali Tespiti) yazımızda yaptığımız IQR ve 3 Sigma işlemlerini şimdi normalizasyon ya da ölçeklendirme işlemi uygulanmış datalarda deneyeceğiz ve aralarındaki farkı inceleyeceğiz.Bunun için eğer IQR ve 3 Sigma yöntemleriyle alakalı fazla bilgiye sahip değilseniz önceki yazımı okumanızı tavsiye ederim. Standardizasyon için Standard Scaler, Normalizasyon için ise Min Max Scaler ve Robust Scaler kullanacağız.
Gerekli Kütüphanelerin Yüklenmesi
Aynı verimizi tekrar oluşturalım ve onun üzerinden işlem gerçekleştirelim.
Veri Setinin Okunması
Bu işlemlerde de 1.Bölümde olduğu gibi Wine.QT
` veri setini kullanacağız.
Wine Quality veri setinden çalışmada kullanılması için chlorides özniteliği seçiyoruz.
Verinin istatistiksel bilgilerini gösterelim.
Ortalama + Standard Sapma Değerlerini Verinin Dağılımı Üzerinde Gösterelim
Standardizasyon
Standardizasyon işlemi, veriyi gaussian distribution dediğimiz normal dağılıma benzetmeye çalışır. Bu yüzden Standardizasyonun bir diğer adı da “Z Score Normalization” dur. Her bir veriyi ortalamadan çıkararak sigmaya yani standart sapmaya böler. Bunu yapmasının nedeni ise verilerin varyasını 1 yaparak ortalama üzerenden dağıtmaktır. Bu yüzden ortalamayı da 0 yapmayı amaçlar.
Standardizasyon işlemini gerçekleştirelim.
Şimdi ise Standardize edilmiş data ile normal datayı kıyaslayalım.
Karşılaştırmaya baktığımızda verimizin soğa doğru kaydığını görürüz. Bu neden oluştu? Çünkü Standardize etmek ortalamayı 0'a yaklaştıracağı için böyle olmuştur.
Standardize edilmiş verinin incelemesini gerçekleştiriyoruz.
İstatistiksel verilerde de görüldüğü üzere ortalama 0 olmamıştır (veri çok düzensiz olduğu için) fakat 0 a yaklaşmıştır.
Ortalama + Standard Sapma Değerlerinin Standardize Edilmiş Veri Üzerinde Gösterimini İnceleyelim.
Şimdi ise Standardize ve normal datanın IQR çizgilerine göre karşılaştırmasını yapalım.
Grafiklere Baktığımızda neredeyse aynı görünüyorlar. Şimdi ise IQR ile hesaplanmış anomali değer sayılarına bakalım değişim gerçekleşmiş mi?
Veri aynı oranda standardize edildiği için anomali değer sayısında bir değişim gözlenmemiştir.
Bir dataframe oluşturalım ve bu dataframe de Standardizasyon verisinde IQR’ın Anomali dediklerini ve demediklerini 1 ve 0 diye işaretlendirelim bunu diğer Normalizasyon türleri için de yapalım
Standardizasyon edilmiş veriyi inceledik şimdi ise Robust Scaler ve Min Max Scaler olmak üzere 2 normalize etme işlemini ayrı ayrı inceleyerek onları da gözlemleyelim.
Normalizasyon (Min Max Scaler)
Min Max Scale işlemini gerçekleştiriyoruz.
Min Max Scaler Uygulanmış Datayı inceleyelim.
Normal veriyle karşılaştıralım.
Görüldüğü üzere ilk bakıştı verinin sadece ölçek olarak küçültüldüğü gözümüze çarpmaktadır.
Yukarıda da bahsettiğimiz gibi max 1, min 0 olmak üzere bir ölçekleme işlemi gerçekleşmiştir.
Min Max Scaler ile normalize edilmiş verinin IQR ile anomali tespiti için alt ve üst sınırlarını buluyoruz.
Ortalama + standard sapma aralıklarını Min Max Scale eidlmiş veri üzerinde gösteriyoruz.
Buradaki standard sapma değerierine bakacak olursak. Görüldüğü üzer anomali tespiti için kötü bir standard sapma aralığıdır ve verinin normalize edilmiş hali de 0 ile 1 arasında olduğu için bu tür normalize edilmiş veride anomali çalışması yapmak mantıklı değildir, bizi yanlış sonuçlara yönlendirecektir.
Şimdi de Normal Data İle Min Max Scale edilmiş datayı IQR ile hesaplanmış anomali değerleri bazında karşılaştıralım.
Grafiği sayısal hale dönüştürelim.
Hedef scala çok daraldığı için bazı sayılar IQR yöntemine göre anomali olmaktan çıkabiliyor..
Min Max Scaler sonrasında elde edilmiş verilerin IQR işlemi sonrasında anomali durumlarına göre numaralandırma işlemini gerçekleştirelim.
Normalizasyon (Robust Scaler)
Aşağıdaki formülden de görüldüğü üzere robust scaler’ın min max scaler’dan farkı min max scaler’da paydada max değerden min değeri çıkararak işlem yapılır. Yani bu ne demek? Verilerimizin en büyük değerinin 1 en küçük değerinin ise 0 olması demek. Robust scaler’da ise bu değişiyor. Robust Scaler’da 3.kartilden 1.kartil çıkıyor. Yani yeni oluşan veride 3.kartilden sonraki ve 1.kartilden önceki değerler olmuyor. Buna birnevi aykırı değerleri almıyor diyebilir miyiz? Evet diyebiliriz fakat ne kadar sağlıklıdır orası tartışılır tabi ki. Son olarak da Robust scaler medyanı veriden çıkartarak işlem yaptığı için temel amacı verilerin aykırı gözlem olmadan medyan bazında toplamaktır. Çünkü anomali değerlerden kurtulmak için medyan bazında, anomalileri incelemek için ise ortalama bazında işlem yapılır.
Robust Scaler Uygulaması
Normal veriyle Karşılaştıralım.
Yine bir sağa kayma mevcuttur
İstatistiksel bilgilerine bakalım.
Görüldüğü üzere aynı standardizasyondaki gibi kısımlarda 3 standart sapma çizgilerini gördük. Bu kısımda dikkat etmemiz gereken şey zaten robust scaler aykırı değerleri almıştı. Şimdi bir daha bu işlemi yaparsak gereksiz olacaktır ki standardizsayona benzeme nedeni de birinin ortalama birinin medyan tabanlı scale yapması ve sadece robust scaler kartil tabanlı scale yaptığı için oransal bir küçülme oluyor doğal olarak standart sapmalarda. Bunun için benzer bir grafik elde etmiş olduk.
Bir de kontrol için IQR ile anomali değer analizinde Normal ve Robust Scale edilmiş veriyi inceleyelim.
Grafiği Sayısal hale dökelim.
Robust scaler edilmiş data üzerinden IQR hesaplaması sonrasında oluşan anomali değerlerini numaralandırma işlemini gerçekleştirelim.
Sonuç olarak
Baktığımızda IQR için standardize edilmiş veriyi kullanacağız. Çünkü ortalamayı 0, standard sapmayı 1 yaparak veri dağılımını 2 boyutlu düzlemde gaussian dağılıma şekline dönüştürürek IQR işlemini gerçekleştireceğiz.
Tamam! Standardizasyon kullacağımıza karar verdik fakat IQR işleminin formülündeki 1.5 katsayısı nerden geliyor diye düşünecek olursak? Bunun ispatını da katsayıyı 1,1.5,2 olarak aralarındaki farkı alarak gösterelim.
Belirlediğimiz katsayılar için yukardaki metodu çağıralım.
Bir grafikte bu değerleri gözlemleyelim.
Görüldüğü üzere katsayıyı 1 aldığımızda grafiğimizde orta alanın dışında kalacak yerler anomali değer olmaktadır.
Kaysatı 2 için işlemimizi gerçekleştirelim.
Görüldüğü üzere 2'de de sınır değerlerimiz 3 standard sapma değerinin üstüne çıktı.
Şimdi son olarak da 1.5 için deneyelim.
Görüldüğü üzere 1.5 katsayısı 1 ve 2 katsayılarına nazaran 3 standart sapma aralığına en çok yaklaşan değer olmuştur.
Peki neden 1.5? Biz 1.6 veya 1.7 dediğimizde 3 standard sapma aralığına daha çok yaklaşmış olabilirdi.
Gelen Verisetlerine baktığımızda hepsinin dağılımı birbiriyle aynı değildir fakat hepsi normal dağılım olarak nitelendirilmektedir. Bunun için bu değişkenliği göze alarak 1.5 katsayı değeri benimsenmiştir.
IQR için Normalizasyon ya da Standardizasyon uygulanmış verilerin karşılaştırılması
Anomali değeri farklı olarak işeretlenmiş değerlere bakalım.
3 Sigma Kuralı İle Anomali Tespiti
IQR için yaptığımız şeyleri 3 sigma için de yapıp görselleştirelim.
Anomali değerleri farklı scale türlerine göre değişimlerini grafik çizerek gözlemleyelim.
Anomali değerlerine sayısal olarak bakalım.
3 Sigma Yönteminde Scale türlerine göre anomalilerin nasıl değiştiğini görsel olarak inceleyelim.
Grafikteki kırmızı çizgilerin dış tarafları anomali verilerdir.
Farklı değer varsa ayrıntılı olarak göz atalım.
Görülüdüğü üzere farklı değerlendirilen değer bulunmamıştır.
Okuduğunuz için çok teşekkür eder, iyi günler dilerim.
Referanslar
- https://www.kaggle.com/code/alexisbcook/scaling-and-normalization
- https://towardsdatascience.com/standardization-vs-normalization-dc81f23085e3#:~:text=Normalizing%20entails%20scaling%20data%20to,range%20of%200%20and%201.&text=Again%2C%20visualization%20can%20help%20give,effects%20of%20normalization%20on%20data.
- https://www.coursera.org/learn/machine-learning/home/week/2
Github Repo: https://github.com/Halil3509/Kisisel_notebooklar