Feature Scaling Nedir?
Merhaba
Türkçesi özellik ölçekleme olarak geçen feature scaling ile değişkenleri makine öğrenmesi algoritmalarına sokmadan önce belirlediğimiz aralıklara indirgiyoruz.
Bu yazımda,
- Hangi algoritmalarda özellikle feature scaling kullanılması gerektiğini,
- Feature scaling e neden ihtiyaç duyduğumuzu,
- En sık kullanılan feature scaling yöntemlerini,
- Feature scaling ile değişen ortalama ve standart sapmaları örneklerle açıklamaya çalışacağım.
Hazırsanız başlayalım…
Veri ön işleme basamağında ele alınan feature scaling, bazı algoritmalarda verileri modele hazırlarken oldukça kritik öneme sahip.
1) Hangi Algoritmalarda Feature Scaling Kullanılması Gerekir?
Özellikle uzaklık temelli algoritmaların sonucunu etkilerken, gradient descent kullanan algoritmaların hızını etkilemektedir.
- KNN,
- SVM,
- K_Means
- Yapay Sinir Ağları
- Gradient Descent kullanan algoritmalar
2) Feature Scaling’e Neden İhtiyaç Duyarız?
- Birinci maddede belirttiğim uzaklık temelli makine öğrenmesi algoritmaları(KNN-SVM-KMeans), büyük aralıklı değişkenlerin küçük aralıklı değişkenlerden daha önemli olduğunu düşünüyor!
Örneğin boy ve günlük tüketilen meyve adedi diye iki değişken olsun. Veri setinde boy 150 cm ile 190 cm arasında değişirken, meyve adedi de 0–6 arasında değişsin. Model bu durumda, boy değişkeninin meyve adedi değişkeninden daha önemli olduğu düşüncesiyle kurulmuş oluyor.
Bu duruma istatistikte yanlılık deniyor, biased.. Bu nedenle biz bu aralıkları tüm değişkenlerdeki değerler için aynı aralıklara çekiyoruz. Örneğin -1 ile 1 arasına ya da 0 ile 1 arasına vs.
- YSA ve gradient descent temelli algoritmalarda ise global noktaya daha hızlı converge etmesini sağlıyor.
3) En Çok Kullanılan Feature Scaling Türleri
- Standard Scaler
Değişkenleri, ortalaması 0 std sapması 1 olan bir dağılıma çeviriyor . Veri setindeki tüm verilerden ilgili sütun ortalaması çıkartılıp yine sütun std sapmasına bölünerek bulunuyor. Böylelikle veri setindeki tüm gözlem birimleri -1 ile 1 arasında değer almış oluyor. z = (x — u) / s
- Normalization
Veri setindeki her bir değeri, ilgili sütundaki min max değerlere göre scale ediyor. (X- Xmin) / (Xmax-Xmin). Verileri 0–1 arasına çeker.
Not: Normalization, outlier olan bir veri setinde outlier ayıklaması yapılmadan önce yapılırsa outlierların yok olmasına sebep olabilir.
- Robust Scaler
Outlierlara karşı robust olan IQR istatistiğine göre veri seti scale ediliyor. (yine sütun bazında IQR’lara göre her bir değişken kendi içinde scale ediliyor, std scaler daki gibi)
Not: IQR= Q3-Q1 (algoritmadaki default değeri: veriler küçükten büyüğe sıralandığında %75. değer-%25.değer)
Yukarıda belirtilen feature scaling yöntemleri dışında MinMax Scaler da çok kullanılmaktadır. MinMax Scaler ile hangi değer aralığına çekileceğini biz kendimiz belirleyebiliyoruz.
Kaynak: